public TransactionalStorage(string path) { if (Directory.Exists(path) == false) { Directory.CreateDirectory(path); } storageFile = Path.Combine(path, "storage.raven"); writer = new FileStream(storageFile, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Delete | FileShare.Read, 16 * 1024, FileOptions.WriteThrough | FileOptions.SequentialScan); try { binaryWriter = new BinaryWriterWith7BitEncoding(writer); isNewDatabase = writer.Length == 0; if (isNewDatabase) { CreateFromScratch(); } TryReadingExistingFile(); } catch (Exception) { Dispose(); throw; } }
public void CanEncodeUsing7BitInt64() { var buffer = new byte[1024]; for (long i = 0; i < 64 * 1024; i++) { var bw = new BinaryWriterWith7BitEncoding(new MemoryStream(buffer)); bw.Write7BitEncodedInt64(i); var br = new BinaryReaderWith7BitEncoding(new MemoryStream(buffer)); Assert.Equal(i, br.Read7BitEncodedInt64()); } }