OpenDatabase() public method

Opens a database in context of this transaction.
public OpenDatabase ( string name = null, DatabaseConfiguration configuration = null ) : LightningDatabase
name string Database name (optional). If null then the default name is used.
configuration DatabaseConfiguration Database open options.
return LightningDatabase
Example #1
0
 /// <summary>
 /// Gets a value by its key.
 /// </summary>
 /// <typeparam name="TKey">Key type.</typeparam>
 /// <param name="txn">Transaction.</param>
 /// <param name="key">Key.</param>
 /// <returns>Value converter or null if not exists.</returns>
 public static GetByOperation GetBy <TKey>(this LightningTransaction txn, TKey key)
 {
     return(txn.GetBy(txn.OpenDatabase(), key));
 }
Example #2
0
 /// <summary>
 /// Put data into a database.
 /// </summary>
 /// <param name="txn">A transaction</param>
 /// <param name="key">Key byte array.</param>
 /// <param name="value">Value byte array.</param>
 /// <param name="options">Operation options (optional).</param>
 public static void Put(this LightningTransaction txn, byte[] key, byte[] value, PutOptions options = PutOptions.None)
 {
     txn.Put(txn.OpenDatabase(), key, value, options);
 }
Example #3
0
 /// <summary>
 /// Delete items from a database.
 /// This function removes key/data pairs from the database.
 /// If the database does not support sorted duplicate data items (MDB_DUPSORT) the data parameter is ignored.
 /// If the database supports sorted duplicates and the data parameter is NULL, all of the duplicate data items for the key will be deleted.
 /// Otherwise, if the data parameter is non-NULL only the matching data item will be deleted.
 /// This function will return MDB_NOTFOUND if the specified key/data pair is not in the database.
 /// </summary>
 /// <param name="txn">A transaction</param>
 /// <param name="key">The key to delete from the database</param>
 /// <param name="value">The data to delete (optional)</param>
 public static void Delete(this LightningTransaction txn, byte[] key, byte[] value = null)
 {
     txn.Delete(txn.OpenDatabase(), key, value);
 }
Example #4
0
 /// <summary>
 /// Check whether data exists in database.
 /// </summary>
 /// <param name="txn">A transaction</param>
 /// <param name="key">Key.</param>
 /// <returns>True if key exists, false if not.</returns>
 public static bool ContainsKey(this LightningTransaction txn, byte[] key)
 {
     return(txn.ContainsKey(txn.OpenDatabase(), key));
 }
Example #5
0
 /// <summary>
 /// Gets a cursor to enumerate a whole database not converting key-value pair during the enumeration.
 /// </summary>
 /// <param name="txn">Transaction.</param>
 /// <returns>A database cursor wrapped into. IEnumerable&lt;CursorGetByOperation&gt;.</returns>
 public static IEnumerable <CursorGetByOperation> EnumerateDatabase(this LightningTransaction txn)
 {
     return(txn.EnumerateDatabase(txn.OpenDatabase()));
 }
Example #6
0
 /// <summary>
 /// Put a key-value pair into a database.
 /// </summary>
 /// <typeparam name="TKey">Type of a key.</typeparam>
 /// <typeparam name="TValue">Type of a value.</typeparam>
 /// <param name="txn">Transaction.</param>
 /// <param name="key">Key.</param>
 /// <param name="value">Value.</param>
 /// <param name="options">Operation options.</param>
 public static void Put <TKey, TValue>(this LightningTransaction txn, TKey key, TValue value, PutOptions options = PutOptions.None)
 {
     txn.Put(txn.OpenDatabase(), value, options);
 }
Example #7
0
 /// <summary>
 /// Gets a cursor to enumerate a whole database.
 /// </summary>
 /// <typeparam name="TKey">Key type.</typeparam>
 /// <typeparam name="TValue">Value type.</typeparam>
 /// <param name="txn">Transaction.</param>
 /// <returns>A database cursor wrapped into IEnumerable&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;.</returns>
 public static IEnumerable <KeyValuePair <TKey, TValue> > EnumerateDatabase <TKey, TValue>(this LightningTransaction txn)
 {
     return(txn.EnumerateDatabase <TKey, TValue>(txn.OpenDatabase()));
 }
Example #8
0
 /// <summary>
 /// Deletes data from database by key.
 /// </summary>
 /// <typeparam name="TKey">Key type.</typeparam>
 /// <param name="txn">Transaction.</param>
 /// <param name="key">Key.</param>
 public static void Delete <TKey>(this LightningTransaction txn, TKey key)
 {
     txn.Delete(txn.OpenDatabase(), key);
 }
Example #9
0
 /// <summary>
 /// Deletes a value from a database for duplicated key values.
 /// </summary>
 /// <typeparam name="TKey">Key type.</typeparam>
 /// <typeparam name="TValue"></typeparam>
 /// <param name="txn">Transaction.</param>
 /// <param name="key">Key.</param>
 /// <param name="value">Value.</param>
 public static void Delete <TKey, TValue>(this LightningTransaction txn, TKey key, TValue value)
 {
     txn.Delete(txn.OpenDatabase(), key, value);
 }
Example #10
0
 /// <summary>
 /// Gets a value by its key.
 /// </summary>
 /// <typeparam name="TKey">Key type.</typeparam>
 /// <typeparam name="TValue">Value type.</typeparam>
 /// <param name="txn">Transaction.</param>
 /// <param name="key">Key.</param>
 /// <returns>Value or default(TValue) if not exists.</returns>
 public static TValue Get <TKey, TValue>(this LightningTransaction txn, TKey key)
 {
     return(txn.Get <TKey, TValue>(txn.OpenDatabase(), key));
 }
Example #11
0
 /// <summary>
 /// Gets a value by its key as a byte array.
 /// </summary>
 /// <typeparam name="TKey">Key type.</typeparam>
 /// <param name="txn">Transaction.</param>
 /// <param name="key">Key.</param>
 /// <returns>Value as a byte array or null if not exists.</returns>
 public static byte[] GetRawValue <TKey>(this LightningTransaction txn, TKey key)
 {
     return(txn.GetRawValue(txn.OpenDatabase(), key));
 }
Example #12
0
 /// <summary>
 /// Gets and converts a value by its key for key-value pairs of a single type.
 /// </summary>
 /// <typeparam name="TType">Key and value type.</typeparam>
 /// <param name="txn">Transaction.</param>
 /// <param name="key">Key.</param>
 /// <returns>Value or default(TType) if not exists.</returns>
 public static TType Get <TType>(this LightningTransaction txn, TType key)
 {
     return(txn.Get(txn.OpenDatabase(), key));
 }
Example #13
0
 /// <summary>
 /// Tries obtaining a value by key, converting it to a concrete type
 /// </summary>
 /// <typeparam name="TKey">Type of a key.</typeparam>
 /// <typeparam name="TValue">Type to convert value to.</typeparam>
 /// <param name="txn">A transaction.</param>
 /// <param name="key">Key.</param>
 /// <param name="value">Obtained and converted value if successful.</param>
 /// <returns>Returns true if key-value pair exists in database or false if not.</returns>
 public static bool TryGet <TKey, TValue>(this LightningTransaction txn, TKey key, out TValue value)
 {
     return(txn.TryGet(txn.OpenDatabase(), key, out value));
 }
Example #14
0
 /// <summary>
 /// Get value from a database.
 /// </summary>
 /// <param name="txn">A transaction</param>
 /// <param name="key">Key byte array.</param>
 /// <returns>Requested value's byte array if exists, or null if not.</returns>
 public static byte[] Get(this LightningTransaction txn, byte[] key)
 {
     return(txn.Get(txn.OpenDatabase(), key));
 }