Exemple #1
0
        public void Cache()
        {
            LevelDBInterop.leveldb_close(Database);
            Database = IntPtr.Zero;

            // open the DB with a cache that is not owned by LevelDB, then
            // close DB and then free the cache
            var options = LevelDBInterop.leveldb_options_create();
            var cache   = LevelDBInterop.leveldb_cache_create_lru((IntPtr)64);

            LevelDBInterop.leveldb_options_set_cache(options, cache);
            IntPtr error;

            Database = LevelDBInterop.leveldb_open(options, DatabasePath, out error);
            LevelDBException.Check(error);
            LevelDBInterop.leveldb_close(Database);
            Database = IntPtr.Zero;

            LevelDBInterop.leveldb_cache_destroy(cache);
            LevelDBInterop.leveldb_options_destroy(options);
        }
Exemple #2
0
 /// <summary>
 /// 初始化一个 <see cref="Aoite.LevelDB.Cache"/> 类的新实例。
 /// </summary>
 /// <param name="capacity">缓存的容量。</param>
 public Cache(long capacity)
 {
     _handle = LevelDBInterop.leveldb_cache_create_lru((IntPtr)capacity);
 }