public static IDatabase <byte[], byte[]> UseIODatabase ( [CanBeNull] this DatabaseBuilder builder, StringDBVersions version, [NotNull] string file ) => builder.UseIODatabase(databaseIODeviceBuilder => databaseIODeviceBuilder.UseStringDB(version, file));
/// <summary> /// Creates a string database that saves to a stream, and specify the version. /// </summary> /// <param name="stream">The stream.</param> /// <param name="version">The version of StringDB.</param> /// <param name="leaveStreamOpen">If the stream should be left open when the database is getting disposed.</param> /// <returns>An IODatabase with a transform, using the specified version of StringDB.</returns> public static IDatabase <string, string> Create ( [NotNull] Stream stream, StringDBVersions version, bool leaveStreamOpen ) => new DatabaseBuilder() .UseIODatabase((builder) => builder.UseStringDB(version, stream, leaveStreamOpen)) .ApplyStringTransformation();
public void CreateWithStreamAndVersion(StringDBVersions version) { using (var db = StringDatabase.Create(new MemoryStream(), version, false)) { db.Insert("init", "Hello, World!"); db.Get("init").Should().Be("Hello, World!"); db.Should() .BeOfType <TransformDatabase <byte[], byte[], string, string> >(); } }
public static IDatabaseIODevice UseStringDB ( [CanBeNull] this DatabaseIODeviceBuilder builder, StringDBVersions version, [NotNull] Stream stream, bool leaveStreamOpen = false ) => new DatabaseIODevice ( version.UseVersion(stream, leaveStreamOpen) );
private static ILowlevelDatabaseIODevice UseVersion ( this StringDBVersions version, [NotNull] Stream stream, bool leaveStreamOpen = false ) { switch (version) { case StringDBVersions.v5_0_0: return(new StringDB5_0_0LowlevelDatabaseIODevice(stream, leaveStreamOpen)); case StringDBVersions.v10_0_0: return(new StringDB10_0_0LowlevelDatabaseIODevice(stream, leaveStreamOpen)); default: throw new NotSupportedException($"Didn't expect a {version}"); } }
public static IDatabaseIODevice UseStringDB ( [CanBeNull] this DatabaseIODeviceBuilder builder, StringDBVersions version, [NotNull] string file ) => builder .UseStringDB ( version, File.Open ( file, FileMode.OpenOrCreate, FileAccess.ReadWrite ) );