Packages
rocksdb
0.7.1
3.1.1
3.1.0
3.0.0
2.6.2
2.6.1
retired
2.6.0
retired
2.5.0
2.4.1
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.0
1.1.1
1.1.0
1.0.0
0.26.2
0.26.1
0.26.0
0.25.0
0.24.0
0.23.3
0.23.2
0.23.1
0.23.0
0.22.0
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
RocksDB for Erlang
Current section
Files
Jump to
Current section
Files
c_src/env.h
// -------------------------------------------------------------------
// Copyright (c) 2016 Benoit Chesneau. All Rights Reserved.
// Copyright (c) 2011-2013 Basho Technologies, Inc. All Rights Reserved.
//
// This file is provided to you under the Apache License,
// Version 2.0 (the "License"); you may not use this file
// except in compliance with the License. You may obtain
// a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
// -------------------------------------------------------------------
#ifndef INCL_ENV_H
#define INCL_ENV_H
#include <syslog.h>
#include "rocksdb/db.h"
#include "rocksdb/cache.h"
#ifndef INCL_THREADING_H
#include "threading.h"
#endif
namespace erocksdb {
/** struct for grabbing erocksdb environment options via fold
* ... then loading said options into erocksdb_priv_data
*/
struct DbOptions
{
int m_DbThreads;
DbOptions()
: m_DbThreads(71)
{};
void Dump()
{
syslog(LOG_ERR, " m_ErocksdbThreads: %d\n", m_DbThreads);
} // Dump
}; // struct erocksdb::DbOptions
static int kCapacity = 4194304; // default values, can be overridden
/** Module-level private data:
* singleton instance held by erlang and passed on API calls
*/
class PrivData
{
public:
DbOptions m_Opts;
erocksdb::erocksdb_thread_pool thread_pool;
std::shared_ptr<rocksdb::Cache> block_cache;
explicit PrivData(DbOptions & Options)
: m_Opts(Options),
thread_pool(Options.m_DbThreads)
{ block_cache = rocksdb::NewLRUCache(kCapacity); }
private:
PrivData(); // no default constructor
PrivData(const PrivData&); // nocopy
PrivData& operator=(const PrivData&); // nocopyassign
};
}
#endif