private IEnumerable<LightningKeyValuePair> GetAll(string database) { var list = new List<LightningKeyValuePair>(); var txn = GetReadonlyTransaction(); var db = OpenDatabase(database); using (var cursor = txn.CreateCursor(db)) { foreach (var item in cursor) { var kv = new LightningKeyValuePair { Key = item.Key, Value = item.Value }; list.Add(kv); } } if (txn.State == LightningTransactionState.Active) txn.Reset(); return list; }
/// <summary> /// Gets the key-value pair identified by the specified key, from the specified database. /// </summary> /// <param name="database">The database.</param> /// <param name="key">The key.</param> /// <returns></returns> private LightningKeyValuePair Get(string database, byte[] key) { var txn = GetReadonlyTransaction(); var db = OpenDatabase(database); var kv = new LightningKeyValuePair { Key = key }; kv.Value = txn.Get(db, key); if (txn.State == LightningTransactionState.Active) txn.Reset(); return kv; }
private IEnumerable<LightningKeyValuePair> Get(string database, IEnumerable<byte[]> keys) { var list = new List<LightningKeyValuePair>(); var txn = GetReadonlyTransaction(); var db = OpenDatabase(database); using (var cur = txn.CreateCursor(db)) { foreach (var key in keys) { if (cur.MoveTo(key)) { var kv = new LightningKeyValuePair { Key = key, Value = cur.GetCurrent().Value }; list.Add(kv); } } } if (txn.State == LightningTransactionState.Active) txn.Reset(); return list; }
/// <summary> /// Updates the specified Lightning key-value pair, in the specified database. /// </summary> /// <param name="database">The database.</param> /// <param name="kv">The key-value pair.</param> /// <returns></returns> public async Task<int> UpdateAsync(string database, LightningKeyValuePair kv) { return await UpdateAsync(database, new[] { kv }).ConfigureAwait(false); }