public BerkeleyBulkCursor(BerkeleyDb berkeleyDb, int bufferSize) :
     base(berkeleyDb, bufferSize, BerkeleyDbMultiple.DB_MULTIPLE_KEY)
 {
     _deleteBuffer = new MultipleBuffer(bufferSize);
     _deleteData = new List<Byte[]>();
     _writeBuffer = new MultipleBuffer(bufferSize);
     _writeData = new List<Dto.BerkeleyDtoPut>();
 }
Example #2
0
 public BerkeleyBulkCursor(BerkeleyDb berkeleyDb, int bufferSize) :
     base(berkeleyDb, bufferSize, BerkeleyDbMultiple.DB_MULTIPLE_KEY)
 {
     _deleteBuffer = new MultipleBuffer(bufferSize);
     _deleteData   = new List <Byte[]>();
     _writeBuffer  = new MultipleBuffer(bufferSize);
     _writeData    = new List <Dto.BerkeleyDtoPut>();
 }
        protected BerkeleyCursor(BerkeleyDb berkeleyDb, int bufferSize, BerkeleyDbCursorFlags mandatoryFlags)
        {
            _berkeleyDb = berkeleyDb;
            _bufferSize = bufferSize;
            _mandatoryFlags = mandatoryFlags;

            _handle = InvalidHandle;
            _methods = berkeleyDb.Methods.CreateCursorMethods();
        }
Example #4
0
        protected BerkeleyCursor(BerkeleyDb berkeleyDb, int bufferSize, BerkeleyDbCursorFlags mandatoryFlags)
        {
            _berkeleyDb     = berkeleyDb;
            _bufferSize     = bufferSize;
            _mandatoryFlags = mandatoryFlags;

            _handle  = InvalidHandle;
            _methods = berkeleyDb.Methods.CreateCursorMethods();
        }
        public override async Task<BerkeleyError> OpenDbAsync(BerkeleyDb db, String name, BerkeleyDbOpenFlags flags)
        {
            var requesrUri = "api/database/open/?handle=" + db.Handle.ToString() + "&name=" + name + "&flags=" + flags.ToStringEx();
            HttpResponseMessage response = await _httpClient.GetAsync(requesrUri).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                return new BerkeleyError(response.StatusCode);

            BerkeleyDbError error = await SerializeHelper.GetErrorAsync(_serializer, response.Content).ConfigureAwait(false);
            return new BerkeleyError(error);
        }
        public override async Task<BerkeleyError> DeleteAsync(BerkeleyDb db, Byte[] key, BerkeleyDbDelete flag, BerkeleyDbMultiple multiple)
        {
            String requestUri = "api/database/delete/?handle=" + db.Handle.ToString() + "&flag=" + flag.ToStringEx() + "&multiple=" + multiple.ToStringEx();
            var content = new ObjectContent<Byte[]>(key, _formatter, (String)null);
            HttpResponseMessage response = await _httpClient.PostAsync(requestUri, content).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                return new BerkeleyError(response.StatusCode);

            BerkeleyDbError error = await SerializeHelper.GetErrorAsync(_serializer, response.Content).ConfigureAwait(false);
            return new BerkeleyError(error);
        }
        public override async Task<BerkeleyResult<long>> CreateDb(BerkeleyDb berkeleyDb, BerkeleyDbFlags flags)
        {
            String requestUri = "api/database/create/?type=" + berkeleyDb.DbType.ToStringEx() + "&flags=" + flags.ToStringEx();
            HttpResponseMessage response = await _httpClient.GetAsync(requestUri).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                return new BerkeleyResult<long>(response.StatusCode);

            BerkeleyDtoResult dtoHandle = await SerializeHelper.GetResultAsync(_serializer, response.Content).ConfigureAwait(false);
            if (dtoHandle.Error != 0)
                return new BerkeleyResult<long>(dtoHandle.Error);

            return new BerkeleyResult<long>(0, Int64.Parse(dtoHandle.Result));
        }
        public override async Task<BerkeleyResult<int>> GetPageSizeAsync(BerkeleyDb db)
        {
            String requestUri = "api/database/pagesize/?handle=" + db.Handle.ToString();
            HttpResponseMessage response = await _httpClient.GetAsync(requestUri).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                return new BerkeleyResult<int>(response.StatusCode);

            BerkeleyDtoResult dtoResult = await SerializeHelper.GetResultAsync(_serializer, response.Content).ConfigureAwait(false);
            if (dtoResult.Error != 0)
                return new BerkeleyResult<int>(dtoResult.Error);

            int pageSize = Int32.Parse(dtoResult.Result);
            return new BerkeleyResult<int>(pageSize);
        }
        private static BerkeleyDb CreateDb(BerkeleyDbFlags flags)
        {
            var client = new HttpClient();
            client.BaseAddress = serviceRootUri;
            var methods = new BerkeleyDbWebApiMethods(client, new Newtonsoft.Json.JsonSerializer(), new System.Net.Http.Formatting.JsonMediaTypeFormatter());
            var bdb = new BerkeleyDb(methods, BerkeleyDbType.DB_BTREE, flags);

            String fileName = Path.Combine(Path.GetTempPath(), "test.bdb");
            File.Delete(fileName);
            BerkeleyError error = bdb.OpenAsync(fileName, BerkeleyDbOpenFlags.DB_CREATE).Result;
            error.ThrowIfError();

            return bdb;
        }
 public abstract Task <BerkeleyError> CloseDbAsync(BerkeleyDb db, BerkeleyDbClose flags);
 public abstract Task <BerkeleyError> WriteDuplicateAsync(BerkeleyDb db, Dto.BerkeleyDtoPut data, int bufferSize, BerkeleyDbWriteMode writeMode);
 public BerkeleyBlobCursor(BerkeleyDb berkeleyDb, int bufferSize)
     : base(berkeleyDb, bufferSize, BerkeleyDbCursorFlags.DB_CURSOR_BULK)
 {
 }
 public abstract Task <BerkeleyResult <long> > CreateDb(BerkeleyDb berkeleyDb, BerkeleyDbFlags flags);
 public BerkeleyKeyValueCursor(BerkeleyDb berkeleyDb)
     : base(berkeleyDb, 0, 0)
 {
 }
        public override async Task<BerkeleyResult<long>> OpenCursorAsync(BerkeleyDb db, BerkeleyDbCursorFlags flags)
        {
            String requestUri = "api/database/opencursor/?handle=" + db.Handle.ToString() + "&flags=" + flags.ToStringEx();
            HttpResponseMessage response = await _httpClient.GetAsync(requestUri).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                return new BerkeleyResult<long>(response.StatusCode);

            BerkeleyDtoResult result = await SerializeHelper.GetResultAsync(_serializer, response.Content).ConfigureAwait(false);
            if (result.Error != 0)
                return new BerkeleyResult<long>(result.Error);

            return new BerkeleyResult<long>(0, Int64.Parse(result.Result));
        }
        public override async Task<BerkeleyError> WriteDuplicateAsync(BerkeleyDb db, BerkeleyDtoPut data, int bufferSize, BerkeleyDbWriteMode writeMode)
        {
            String requestUri;
            BerkeleyDtoPut dataPost;
            if (data.Key.Length <= bufferSize && data.Value.Length <= bufferSize)
            {
                requestUri = "api/database/writemultipleduplicate/?handle=" + db.Handle.ToString() + "&writemode=" + writeMode.ToStringEx();
                dataPost = new BerkeleyDtoPut(data.Key, data.Value);
            }
            else
            {
                requestUri = "api/database/write/?handle=" + db.Handle.ToString() + "&writemode=" + writeMode.ToStringEx();
                dataPost = data;
            }

            ObjectContent content = new ObjectContent<BerkeleyDtoPut>(dataPost, _formatter, (String)null);
            HttpResponseMessage response = await _httpClient.PostAsync(requestUri, content).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                return new BerkeleyError(response.StatusCode);

            BerkeleyDbError error = await SerializeHelper.GetErrorAsync(_serializer, response.Content).ConfigureAwait(false);
            return new BerkeleyError(error);
        }
 public BerkeleyKeyValueCursor(BerkeleyDb berkeleyDb)
     : base(berkeleyDb, 0, 0)
 {
 }
        public override async Task<BerkeleyError> WriteAsync(BerkeleyDb db, Byte[] key, Byte[] value, BerkeleyDbWriteMode writeMode)
        {
            String requestUri = "api/database/write/?handle=" + db.Handle.ToString() + "&writemode=" + writeMode.ToStringEx();
            var data = new BerkeleyDtoPut(key, value);
            var content = new ObjectContent<BerkeleyDtoPut>(data, _formatter, (String)null);
            HttpResponseMessage response = await _httpClient.PostAsync(requestUri, content).ConfigureAwait(false);
            if (!response.IsSuccessStatusCode)
                return new BerkeleyError(response.StatusCode);

            BerkeleyDbError error = await SerializeHelper.GetErrorAsync(_serializer, response.Content).ConfigureAwait(false);
            return new BerkeleyError(error);
        }
Example #19
0
 private static void ReadFoto(BerkeleyDb bdb)
 {
     Byte[] key = System.Text.Encoding.UTF8.GetBytes("simple key/value");
     using (var reader = new BerkeleyKeyValueCursor(bdb))
     {
         var result = reader.ReadAsync(key, BerkeleyDbOperation.DB_SET).Result;
         File.WriteAllBytes(@"D:\zzz.jpg", result.Result.Value.ToArray());
     }
 }
 public abstract Task <BerkeleyResult <int> > GetPageSizeAsync(BerkeleyDb db);
 public abstract Task<BerkeleyError> CloseDbAsync(BerkeleyDb db, BerkeleyDbClose flags);
 public abstract Task <BerkeleyResult <long> > OpenCursorAsync(BerkeleyDb db, BerkeleyDbCursorFlags flags);
 public abstract Task <BerkeleyError> DeleteAsync(BerkeleyDb db, Byte[] key, BerkeleyDbDelete flag, BerkeleyDbMultiple multiple);
 public BerkeleyBlobCursor(BerkeleyDb berkeleyDb, int bufferSize)
     : base(berkeleyDb, bufferSize, BerkeleyDbCursorFlags.DB_CURSOR_BULK)
 {
 }
 public abstract Task <BerkeleyError> OpenDbAsync(BerkeleyDb db, String name, BerkeleyDbOpenFlags flags);
 public abstract Task<BerkeleyResult<long>> CreateDb(BerkeleyDb berkeleyDb, BerkeleyDbFlags flags);
 public abstract Task <BerkeleyError> WriteAsync(BerkeleyDb db, Byte[] key, Byte[] value, BerkeleyDbWriteMode writeMode);
 public abstract Task<BerkeleyError> DeleteAsync(BerkeleyDb db, Byte[] key, BerkeleyDbDelete flag, BerkeleyDbMultiple multiple);
 public abstract Task <BerkeleyError> WriteMultipleAsync(BerkeleyDb db, Dto.BerkeleyDtoPut data, BerkeleyDbWriteMode writeMode);
 public abstract Task<BerkeleyResult<int>> GetPageSizeAsync(BerkeleyDb db);
 protected BerkeleyBulkCursorBase(BerkeleyDb berkeleyDb, int bufferSize, BerkeleyDbMultiple multiple)
     : base(berkeleyDb, bufferSize, BerkeleyDbCursorFlags.DB_CURSOR_BULK)
 {
     _multiple = multiple;
 }
 public abstract Task<BerkeleyError> OpenDbAsync(BerkeleyDb db, String name, BerkeleyDbOpenFlags flags);
 public abstract Task<BerkeleyResult<long>> OpenCursorAsync(BerkeleyDb db, BerkeleyDbCursorFlags flags);
 public abstract Task<BerkeleyError> WriteAsync(BerkeleyDb db, Byte[] key, Byte[] value, BerkeleyDbWriteMode writeMode);
 private static int GetPageSize(BerkeleyDb bdb)
 {
     BerkeleyResult<int> pageSizeResult = bdb.GetPageSizeAsync().Result;
     pageSizeResult.Error.ThrowIfError();
     return pageSizeResult.Result;
 }
 public abstract Task<BerkeleyError> WriteDuplicateAsync(BerkeleyDb db, Dto.BerkeleyDtoPut data, int bufferSize, BerkeleyDbWriteMode writeMode);
Example #37
0
 private static void WriteFoto(BerkeleyDb bdb, String fileName)
 {
     Byte[] key = System.Text.Encoding.UTF8.GetBytes(("simple key/value").ToString());
     Byte[] value = File.ReadAllBytes(fileName);
     var err = bdb.WriteAsync(key, value, 0).Result;
 }
 public abstract Task<BerkeleyError> WriteMultipleAsync(BerkeleyDb db, Dto.BerkeleyDtoPut data, BerkeleyDbWriteMode writeMode);
Example #39
0
        static void Main(string[] args)
        {
            var serviceRootUri = new Uri("http://*****:*****@"D:\гуманитарий с дипломом менеджера.jpg");
                    //ReadFoto(bdb);
                }
            }
        }
 protected BerkeleyBulkCursorBase(BerkeleyDb berkeleyDb, int bufferSize, BerkeleyDbMultiple multiple)
     : base(berkeleyDb, bufferSize, BerkeleyDbCursorFlags.DB_CURSOR_BULK)
 {
     _multiple = multiple;
 }