private static bool Check(BerkeleyKeyValueCursor cursor, List<int> keys) { var readKeys = new List<int>(); for (BerkeleyResult<BerkeleyKeyValue> result = cursor.ReadAsync(null, BerkeleyDbOperation.DB_FIRST).Result; result.Error.BerkeleyDbError != BerkeleyDbError.DB_NOTFOUND; result = cursor.ReadAsync(null, BerkeleyDbOperation.DB_NEXT).Result) { result.Error.ThrowIfError(); String skey = Encoding.UTF8.GetString(result.Result.Key); int ikey = int.Parse(skey.Replace("key", "")); String svalue = Encoding.UTF8.GetString(result.Result.Value); int ivalue = int.Parse(svalue.Replace("value", "")); if (ikey != ivalue) throw new InvalidOperationException(); readKeys.Add(ikey); } return keys.SequenceEqual(readKeys); }
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()); } }
private static void ReadAll(BerkeleyKeyValueCursor cursor) { for (BerkeleyResult<BerkeleyKeyValue> result = cursor.ReadAsync(null, BerkeleyDbOperation.DB_FIRST).Result; result.Error.BerkeleyDbError != BerkeleyDbError.DB_NOTFOUND; result = cursor.ReadAsync(null, BerkeleyDbOperation.DB_NEXT).Result) { result.Error.ThrowIfError(); WriteLine(result.Result.Key, result.Result.Value); } }
private static void KeyValueCheck(BerkeleyKeyValueCursor cursor, List<int> keys) { var readKeys = new List<int>(); for (BerkeleyResult<BerkeleyKeyValue> result = cursor.ReadAsync(null, BerkeleyDbOperation.DB_FIRST).Result; result.Error.BerkeleyDbError != BerkeleyDbError.DB_NOTFOUND; result = cursor.ReadAsync(null, BerkeleyDbOperation.DB_NEXT).Result) { result.Error.ThrowIfError(); String skey = Encoding.UTF8.GetString(result.Result.Key); int ikey = int.Parse(skey.Replace("key", "")); String svalue = Encoding.UTF8.GetString(result.Result.Value); int ivalue = int.Parse(svalue.Replace("value", "")); Assert.IsTrue(ikey == ivalue, "read error"); readKeys.Add(ikey); } Assert.IsTrue(keys.SequenceEqual(readKeys), "delete error"); }