private CyclicPersistantDatabase(string filename) { if (File.Exists(filename + ".xml")) { throw new FileNotFoundException("Xml with name " + filename + ".xml must " + "exist for database (if previously persisted)."); } // We read it. database = MemoryDatabase.OpenDatabase(filename + current.ToString() + ".image"); }
/// <summary> /// Persists to stream. /// </summary> /// <param name="filename">The filename.</param> /// <param name="database">The database.</param> public static void PersistToStream([NotEmpty] string filename, [NotNull] MemoryDatabase database) { Stream stream = File.Create(filename); try { PersistToStream(stream, database); } finally { stream.Dispose(); } }
/// <summary> /// Persists this instance. /// </summary> public void Persist() { // We first change current. if (current == 1) { current = 0; } else { current = 1; } // We write database first. MemoryDatabase.PersistToStream(filename + current.ToString() + ".image", database); // And update XML. WriteXml(); }
/// <summary> /// Persists to stream. /// </summary> /// <param name="stream">The stream.</param> /// <param name="database">The database.</param> public static void PersistToStream(Stream stream, MemoryDatabase database) { Common.SerializeToStream(stream, database); }
private CyclicPersistantDatabase(string filename, string name, Type type, StreamOptions ops) { this.filename = filename; this.database = MemoryDatabase.CreateNewDatabase(name, type, ops); }