Esempio n. 1
0
        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());
            }
        }