Ejemplo n.º 1
0
 public static void CheckError(IntPtr error)
 {
     if (error != IntPtr.Zero)
     {
         string message = Marshal.PtrToStringAnsi(error);
         Native.leveldb_free(error);
         throw new LevelDBException(message);
     }
 }
Ejemplo n.º 2
0
        public byte[] Get(ReadOptions options, byte[] key)
        {
            IntPtr value = Native.leveldb_get(handle, options.handle, key, (UIntPtr)key.Length, out UIntPtr length, out IntPtr error);

            try
            {
                if (error != IntPtr.Zero)
                {
                    Native.leveldb_free(error);
                    return(null);
                }
                return(value.ToByteArray(length));
            }
            finally
            {
                if (value != IntPtr.Zero)
                {
                    Native.leveldb_free(value);
                }
            }
        }