예제 #1
0
        public MessageWriter(IPageWriter pages, ICheckpointWriter positionWriter)
        {
            _pages          = pages;
            _positionWriter = positionWriter;

            _buffer   = new byte[pages.GetMaxCommitSize()];
            _pageSize = pages.GetPageSize();
            _stream   = new MemoryStream(_buffer, true);
            _binary   = new BinaryWriter(_stream, Encoding.UTF8, true);
        }
예제 #2
0
        public MessageWriter(IPageWriter pages, ICheckpointWriter positionWriter)
        {
            _pages = pages;
            _positionWriter = positionWriter;

            _buffer = new byte[pages.GetMaxCommitSize()];
            _pageSize = pages.GetPageSize();
            _stream = new MemoryStream(_buffer, true);
            _binary = new BinaryWriter(_stream, Encoding.UTF8, true);
        }
예제 #3
0
        public void quasi_random_test()
        {
            var maxCommitSize = PageWriter.GetMaxCommitSize();
            var written       = new List <Message>();

            for (int i = 0; i < 100; i++)
            {
                var batchSize = (i % 10) + 1;
                var list      = new Message[batchSize];
                for (int j = 0; j < batchSize; j++)
                {
                    var size  = ((i * 1024 + j + 3) % (maxCommitSize - 512)) % Constants.MaxValueSize;
                    var write = Message.Create("{0}:{1}", RandBytes(size + 1));
                    list[j] = write;
                }
                Writer.Append(list);
                written.AddRange(list);
            }
        }