Panoptes 1.0.0
Endpoint Detection and Response
Loading...
Searching...
No Matches
Public Member Functions | List of all members
PanoptesDatabase Class Reference

#include <database.hpp>

Public Member Functions

std::string UpdateEntry (std::string key, std::string entry)
 
BOOL AddEntry (std::string key, std::string entry)
 
std::string GetEntry (std::string hash)
 
ERRORCODE InitializeDatabase ()
 
 PanoptesDatabase ()
 

Detailed Description

Definition at line 7 of file database.hpp.

Constructor & Destructor Documentation

◆ PanoptesDatabase()

PanoptesDatabase::PanoptesDatabase ( )

Definition at line 68 of file database.cpp.

68 {
69 m_options.IncreaseParallelism();
70 m_options.OptimizeLevelStyleCompaction();
71 m_options.create_if_missing = true;
72}
rocksdb::Options m_options
Definition database.cpp:21

References m_options.

Member Function Documentation

◆ AddEntry()

BOOL PanoptesDatabase::AddEntry ( std::string  key,
std::string  entry 
)

Definition at line 33 of file database.cpp.

33 {
34 Status s = m_database->Put(WriteOptions(), key, entry);
35 if (s.ok()) {
36 return true;
37 }
38 else {
39 return false;
40 }
41}
rocksdb::DB * m_database
Definition database.cpp:20

References m_database.

◆ GetEntry()

std::string PanoptesDatabase::GetEntry ( std::string  hash)

Definition at line 43 of file database.cpp.

43 {
44 std::string value;
45 Status s = m_database->Get(ReadOptions(), hash, &value);
46 return value;
47}

References m_database.

Referenced by UpdateEntry().

◆ InitializeDatabase()

ERRORCODE PanoptesDatabase::InitializeDatabase ( )

Definition at line 23 of file database.cpp.

23 {
24 Status s = rocksdb::DB::Open(m_options, PANOPTES_DATABASE_PATH, &m_database);
25 if (s.ok()) {
26 return PANO_SUCCESS;
27 }
28 else {
29 return DB_INITIALIZATION;
30 }
31}
#define PANO_SUCCESS
#define DB_INITIALIZATION
#define PANOPTES_DATABASE_PATH

References DB_INITIALIZATION, m_database, m_options, PANO_SUCCESS, and PANOPTES_DATABASE_PATH.

◆ UpdateEntry()

std::string PanoptesDatabase::UpdateEntry ( std::string  key,
std::string  entry 
)

Definition at line 49 of file database.cpp.

49 {
50 std::string dbEntryStr = GetEntry(key);
51 nlohmann::json dbEntry = nlohmann::json::parse(dbEntryStr);
52 nlohmann::json entryToMerge = nlohmann::json::parse(entry);
53 dbEntry.merge_patch(entryToMerge);
54 std::string combinedEntry = dbEntry.dump();
55 WriteBatch batch;
56
57 batch.Delete(key);
58 batch.Put(key, combinedEntry);
59 Status s = m_database->Write(WriteOptions(), &batch);
60 if (s.ok()) {
61 return combinedEntry;
62 }
63 else {
64 return "";
65 }
66}
std::string GetEntry(std::string hash)
Definition database.cpp:43

References GetEntry(), and m_database.


The documentation for this class was generated from the following files: