static void SaveCache(IPredictionEnvironment environment, int expectedPairsHash, int expectedHistoryHash, RAMDirectory directory) { using (var writer = environment.CreateStaticDictionaryCache()) { writer.Write(FileHeaderMagic); writer.Write(expectedPairsHash); writer.Write(expectedHistoryHash); var names = directory.ListAll(); writer.Write((System.Int16)names.Length); foreach (var name in names) { var reader = directory.OpenInput(name); var length = reader.Length(); var buffer = new byte[length]; reader.ReadBytes(buffer, 0, (int)length); writer.Write(name); writer.Write((System.Int32)length); writer.Write(buffer); } } }