Ejemplo n.º 1
0
 public static IDatabase <byte[], byte[]> UseIODatabase
 (
     [CanBeNull] this DatabaseBuilder builder,
     StringDBVersions version,
     [NotNull] string file
 )
 => builder.UseIODatabase(databaseIODeviceBuilder => databaseIODeviceBuilder.UseStringDB(version, file));
Ejemplo n.º 2
0
 /// <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();
Ejemplo n.º 3
0
        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
     )
 );