Ejemplo n.º 1
0
 internal void Put(ref DirectBuffer key, ref DirectBuffer value,
                   TransactionPutOptions flags = TransactionPutOptions.None)
 {
     NativeMethods.AssertExecute(NativeMethods.sdb_put(Environment._handle.Handle, _handle,
                                                       ref key, ref value,
                                                       flags));
 }
Ejemplo n.º 2
0
        public static unsafe void Put(this Transaction tx, Database db, Bufferable key, Bufferable value,
                                      TransactionPutOptions flags = TransactionPutOptions.None)
        {
            fixed(byte *keyPtr = &key.Buffer[0], valPtr = &value.Buffer[0])
            {
                var keydb   = new DirectBuffer(key.Buffer.Length, keyPtr);
                var valuedb = new DirectBuffer(value.Buffer.Length, valPtr);

                db.Put(tx, ref keydb, ref valuedb, flags);
            }
        }
Ejemplo n.º 3
0
        public void Put <TKey, TValue>(TKey key, TValue value,
                                       TransactionPutOptions flags = TransactionPutOptions.None)
            where TKey : struct where TValue : struct
        {
            var keyPtr   = AsPointer(ref key);
            var valuePtr = AsPointer(ref value);
            var key1     = new DirectBuffer(TypeHelper <TKey> .EnsureFixedSize(), (byte *)keyPtr);
            var value1   = new DirectBuffer(TypeHelper <TValue> .EnsureFixedSize(), (byte *)valuePtr);

            NativeMethods.AssertExecute(NativeMethods.sdb_put(Environment._handle.Handle, _handle,
                                                              ref key1, ref value1,
                                                              flags));
        }
Ejemplo n.º 4
0
        public void Put <TKey, TValue>(TKey key, TValue value,
                                       TransactionPutOptions flags = TransactionPutOptions.None)
            where TKey : struct where TValue : struct
        {
            EnsureNoRefs <TKey>();
            EnsureNoRefs <TValue>();

            var keyPtr   = AsPointer(ref key);
            var valuePtr = AsPointer(ref value);
            var key1     = new DirectBuffer(SizeOf <TKey>(), (nint)keyPtr);
            var value1   = new DirectBuffer(SizeOf <TValue>(), (nint)valuePtr);

            NativeMethods.AssertExecute(NativeMethods.sdb_put(Environment._handle.Handle, _handle,
                                                              ref key1, ref value1,
                                                              flags));
        }
Ejemplo n.º 5
0
 public static extern int mdb_put(IntPtr txn, uint dbi, ref DirectBuffer key, ref DirectBuffer data, TransactionPutOptions flags);
Ejemplo n.º 6
0
 public Task PutAsync <TKey, TValue>(TKey key, TValue value,
                                     TransactionPutOptions flags = TransactionPutOptions.None)
     where TKey : struct where TValue : struct
 {
     return(Task.Run(() => Put(key, value, flags)));
 }
Ejemplo n.º 7
0
 public void Put(Transaction txn, ref DirectBuffer key, ref DirectBuffer value,
                 TransactionPutOptions flags = TransactionPutOptions.None)
 {
     NativeMethods.AssertExecute(NativeMethods.mdb_put(txn._impl.Handle, _handle,
                                                       ref key, ref value, flags));
 }