mirror of
https://github.com/zeek/zeek.git
synced 2025-10-17 05:58:20 +00:00
Add infrastructure for asynchronous storage operations
This commit is contained in:
parent
d07d27453a
commit
7ad6a05f5b
8 changed files with 251 additions and 49 deletions
|
@ -37,7 +37,7 @@ void StorageDummy::Close() { open = false; }
|
|||
* The workhorse method for Put(). This must be implemented by plugins.
|
||||
*/
|
||||
zeek::storage::ErrorResult StorageDummy::DoPut(zeek::ValPtr key, zeek::ValPtr value, bool overwrite,
|
||||
double expiration_time) {
|
||||
double expiration_time, zeek::storage::ErrorResultCallback* cb) {
|
||||
auto json_key = key->ToJSON()->ToStdString();
|
||||
auto json_value = value->ToJSON()->ToStdString();
|
||||
data[json_key] = json_value;
|
||||
|
@ -47,7 +47,7 @@ zeek::storage::ErrorResult StorageDummy::DoPut(zeek::ValPtr key, zeek::ValPtr va
|
|||
/**
|
||||
* The workhorse method for Get(). This must be implemented for plugins.
|
||||
*/
|
||||
zeek::storage::ValResult StorageDummy::DoGet(zeek::ValPtr key) {
|
||||
zeek::storage::ValResult StorageDummy::DoGet(zeek::ValPtr key, zeek::storage::ValResultCallback* cb) {
|
||||
auto json_key = key->ToJSON();
|
||||
auto it = data.find(json_key->ToStdString());
|
||||
if ( it == data.end() )
|
||||
|
@ -65,7 +65,7 @@ zeek::storage::ValResult StorageDummy::DoGet(zeek::ValPtr key) {
|
|||
/**
|
||||
* The workhorse method for Erase(). This must be implemented for plugins.
|
||||
*/
|
||||
zeek::storage::ErrorResult StorageDummy::DoErase(zeek::ValPtr key) {
|
||||
zeek::storage::ErrorResult StorageDummy::DoErase(zeek::ValPtr key, zeek::storage::ErrorResultCallback* cb) {
|
||||
auto json_key = key->ToJSON();
|
||||
auto it = data.find(json_key->ToStdString());
|
||||
if ( it == data.end() )
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace btest::storage::backend {
|
|||
*/
|
||||
class StorageDummy : public zeek::storage::Backend {
|
||||
public:
|
||||
StorageDummy(std::string_view tag) : Backend(tag) {}
|
||||
StorageDummy(std::string_view tag) : Backend(false, tag) {}
|
||||
~StorageDummy() override = default;
|
||||
|
||||
static zeek::storage::BackendPtr Instantiate(std::string_view tag);
|
||||
|
@ -37,17 +37,18 @@ public:
|
|||
* The workhorse method for Put().
|
||||
*/
|
||||
zeek::storage::ErrorResult DoPut(zeek::ValPtr key, zeek::ValPtr value, bool overwrite = true,
|
||||
double expiration_time = 0) override;
|
||||
double expiration_time = 0,
|
||||
zeek::storage::ErrorResultCallback* cb = nullptr) override;
|
||||
|
||||
/**
|
||||
* The workhorse method for Get().
|
||||
*/
|
||||
zeek::storage::ValResult DoGet(zeek::ValPtr key) override;
|
||||
zeek::storage::ValResult DoGet(zeek::ValPtr key, zeek::storage::ValResultCallback* cb = nullptr) override;
|
||||
|
||||
/**
|
||||
* The workhorse method for Erase().
|
||||
*/
|
||||
zeek::storage::ErrorResult DoErase(zeek::ValPtr key) override;
|
||||
zeek::storage::ErrorResult DoErase(zeek::ValPtr key, zeek::storage::ErrorResultCallback* cb = nullptr) override;
|
||||
|
||||
private:
|
||||
std::map<std::string, std::string> data;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue