edit | blame | history | raw

RocksDBWrapper

RocksDBWrapper is a C++ library that provides a convenient interface for storing, retrieving, and indexing data using RocksDB. This library supports serialization of complex data structures and indexing for efficient queries.

Features

  • Store and Retrieve Data: Easily store and retrieve complex data structures.
  • Key Existence Check: Check if a specific key exists in the database.
  • Member Indexing: Index struct members for efficient search queries.
  • Text Search: Perform text-based searches on indexed members.
  • Conditional Search: Perform conditional searches on the data.

Installation

Dependencies

Build

mkdir build
cd build
cmake .. -DBUILD_TESTS=ON  # Add -DBUILD_TESTS=OFF if you do not want to build tests
make

Public Methods Documentation

Constructor and Destructor

RocksDBWrapper(const std::string &db_path, const std::string &index_path)

  • Description: Constructs a RocksDBWrapper instance and opens the specified database and index paths.
  • Parameters:
  • db_path: The path to the main RocksDB database.

  • index_path: The path to the index RocksDB database.

~RocksDBWrapper()

  • Description: Destructor that cleans up the database and index database resources.

Data Storage and Retrieval

template <typename T> void store(const std::string &key, const T &value)

  • Description: Stores a value associated with the specified key.
  • Parameters:
  • key: The key to associate with the value.

  • value: The value to store.

template <typename T> bool get(const std::string &key, T &value)

  • Description: Retrieves the value associated with the specified key.
  • Parameters:
  • key: The key to retrieve the value for.

  • value: The variable to store the retrieved value.
  • Returns: true if the key was found and the value was retrieved; false otherwise.

Key Existence

bool keyExists(const std::string &key)

  • Description: Checks if a key exists in the database.
  • Parameters:
  • key: The key to check for existence.

  • Returns: true if the key exists; false otherwise.

Searching

template <typename T> std::vector<std::string> search(const std::string &member_name, const std::string &member_value)

  • Description: Searches for keys by a member's value.
  • Parameters:
  • member_name: The name of the member to search by.

  • member_value: The value of the member to search for.
  • Returns: A vector of keys that match the search criteria.

template <typename T> void search_text(const std::string &search_value, std::vector<T> &res)

  • Description: Performs a text-based search on indexed members.
  • Parameters:
  • search_value: The text to search for.

  • res: A vector to store the results.

template <typename T> void search_conditional(std::vector<T> &res, std::function<bool(const T &)> condition)

  • Description: Performs a conditional search on the data.
  • Parameters:
  • res: A vector to store the results.

  • condition: A function to define the search condition.

This README.md provides a comprehensive overview of the RocksDBWrapper library, including installation instructions, usage examples, and documentation of public methods.

CMakeLists 1 KB
README 3 KB