Decentralised Art Server
High-performance C++ backend that exposes HTML interface and a secure REST API for managing Performative Transactions entities
 
Loading...
Searching...
No Matches
sqlite_registry_store.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <optional>
4#include <string>
5#include <vector>
6
7#include "registry_store.hpp"
8
9struct sqlite3;
10
11namespace dcn::storage
12{
14 {
15 public:
16 explicit SQLiteRegistryStore(const std::string & db_path);
17 ~SQLiteRegistryStore() override;
18
21
24
25 bool hasConnector(const std::string & name) const override;
26 std::optional<ConnectorRecordHandle> getConnectorRecordHandle(
27 const std::string & name) const override;
28 std::optional<evmc::bytes32> getConnectorFormatHash(const std::string & name) const override;
29 bool addConnector(
30 const chain::Address & address,
31 const ConnectorRecord & record,
32 const evmc::bytes32 & format_hash,
33 const std::vector<ScalarLabel> & canonical_scalar_labels) override;
35 const std::vector<ConnectorBatchItem> & items,
36 bool all_or_nothing = true) override;
37 std::size_t getFormatConnectorNamesCount(const evmc::bytes32 & format_hash) const override;
39 const evmc::bytes32 & format_hash,
40 const std::optional<NameCursor> & after,
41 std::size_t limit) const override;
42 std::optional<std::vector<ScalarLabel>> getScalarLabelsByFormatHash(
43 const evmc::bytes32 & format_hash) const override;
44
45 bool hasTransformation(const std::string & name) const override;
46 std::optional<TransformationRecordHandle> getTransformationRecordHandle(
47 const std::string & name) const override;
49 const chain::Address & address,
50 const TransformationRecord & record) override;
52 const std::vector<TransformationBatchItem> & items,
53 bool all_or_nothing = true) override;
54
55 bool hasCondition(const std::string & name) const override;
56 std::optional<ConditionRecordHandle> getConditionRecordHandle(
57 const std::string & name) const override;
58 bool addCondition(
59 const chain::Address & address,
60 const ConditionRecord & record) override;
62 const std::vector<ConditionBatchItem> & items,
63 bool all_or_nothing = true) override;
64
66 const chain::Address & owner,
67 const std::optional<NameCursor> & after,
68 std::size_t limit) const override;
70 const chain::Address & owner,
71 const std::optional<NameCursor> & after,
72 std::size_t limit) const override;
74 const chain::Address & owner,
75 const std::optional<NameCursor> & after,
76 std::size_t limit) const override;
77
78 bool checkpointWal(WalCheckpointMode mode) const override;
79
80 private:
81 sqlite3 * _db = nullptr;
82
83 bool _initializeSchema() const;
84 bool _exec(const char * sql) const;
85 bool _beginTransaction() const;
86 bool _commitTransaction() const;
87 void _rollbackTransaction() const;
88
89 NameCursorPage _getOwnedCursorFromTable(
90 const char * table_name,
91 const chain::Address & owner,
92 const std::optional<NameCursor> & after,
93 std::size_t limit) const;
94 };
95}
Definition registry_store.hpp:58
Definition sqlite_registry_store.hpp:14
bool addConnector(const chain::Address &address, const ConnectorRecord &record, const evmc::bytes32 &format_hash, const std::vector< ScalarLabel > &canonical_scalar_labels) override
Definition sqlite_registry_store.cpp:421
bool checkpointWal(WalCheckpointMode mode) const override
Definition sqlite_registry_store.cpp:1571
std::optional< ConditionRecordHandle > getConditionRecordHandle(const std::string &name) const override
Definition sqlite_registry_store.cpp:1201
SQLiteRegistryStore(SQLiteRegistryStore &&)=delete
bool hasCondition(const std::string &name) const override
Definition sqlite_registry_store.cpp:1162
SQLiteRegistryStore & operator=(SQLiteRegistryStore &&)=delete
NameCursorPage getOwnedConditionsCursor(const chain::Address &owner, const std::optional< NameCursor > &after, std::size_t limit) const override
Definition sqlite_registry_store.cpp:1566
bool addConditionsBatch(const std::vector< ConditionBatchItem > &items, bool all_or_nothing=true) override
Definition sqlite_registry_store.cpp:1327
std::size_t getFormatConnectorNamesCount(const evmc::bytes32 &format_hash) const override
Definition sqlite_registry_store.cpp:715
bool addTransformationsBatch(const std::vector< TransformationBatchItem > &items, bool all_or_nothing=true) override
Definition sqlite_registry_store.cpp:1011
bool addTransformation(const chain::Address &address, const TransformationRecord &record) override
Definition sqlite_registry_store.cpp:940
NameCursorPage getOwnedTransformationsCursor(const chain::Address &owner, const std::optional< NameCursor > &after, std::size_t limit) const override
Definition sqlite_registry_store.cpp:1561
SQLiteRegistryStore & operator=(const SQLiteRegistryStore &)=delete
std::optional< std::vector< ScalarLabel > > getScalarLabelsByFormatHash(const evmc::bytes32 &format_hash) const override
Definition sqlite_registry_store.cpp:805
NameCursorPage getFormatConnectorNamesCursor(const evmc::bytes32 &format_hash, const std::optional< NameCursor > &after, std::size_t limit) const override
Definition sqlite_registry_store.cpp:737
bool hasTransformation(const std::string &name) const override
Definition sqlite_registry_store.cpp:847
bool addConnectorsBatch(const std::vector< ConnectorBatchItem > &items, bool all_or_nothing=true) override
Definition sqlite_registry_store.cpp:536
std::optional< evmc::bytes32 > getConnectorFormatHash(const std::string &name) const override
Definition sqlite_registry_store.cpp:402
bool addCondition(const chain::Address &address, const ConditionRecord &record) override
Definition sqlite_registry_store.cpp:1256
SQLiteRegistryStore(const SQLiteRegistryStore &)=delete
~SQLiteRegistryStore() override
Definition sqlite_registry_store.cpp:193
bool hasConnector(const std::string &name) const override
Definition sqlite_registry_store.cpp:308
std::optional< ConnectorRecordHandle > getConnectorRecordHandle(const std::string &name) const override
Definition sqlite_registry_store.cpp:347
std::optional< TransformationRecordHandle > getTransformationRecordHandle(const std::string &name) const override
Definition sqlite_registry_store.cpp:886
NameCursorPage getOwnedConnectorsCursor(const chain::Address &owner, const std::optional< NameCursor > &after, std::size_t limit) const override
Definition sqlite_registry_store.cpp:1556
std::string name
Definition ingestion.cpp:29
evmc::address Address
Definition address.hpp:18
Definition registry.hpp:21
WalCheckpointMode
Definition registry_store.hpp:51
Definition registry_store.hpp:44