zeek/scripts/base/frameworks/storage/main.zeek
Tim Wojtulewicz 2ea0f3e70a Lay out initial parts for the Storage framework
This includes a manager, component manager, BIF and script code, and
parts to support new storage backend plugins.
2025-03-18 09:32:34 -07:00

85 lines
2.6 KiB
Text

##! The storage framework provides a way to store long-term data to disk.
@load base/bif/storage.bif
module Storage;
export {
## Opens a new backend connection based on a configuration object.
##
## btype: A tag indicating what type of backend should be opened.
##
## options: A record containing the configuration for the connection.
##
## Returns: A handle to the new backend connection, or null if the
## connection failed.
global open_backend: function(btype: Storage::Backend, options: any): opaque of Storage::BackendHandle;
## Closes an existing backend connection.
##
## backend: A handle to a backend connection.
##
## Returns: A boolean indicating success or failure of the operation.
global close_backend: function(backend: opaque of Storage::BackendHandle): bool;
## Inserts a new entry into a backend.
##
## backend: A handle to a backend connection.
##
## key: A key value.
##
## value: A corresponding value.
##
## overwrite: A flag indicating whether this value should overwrite an
## existing entry for the key.
##
## Returns: A boolean indicating success or failure of the operation.
global put: function(backend: opaque of Storage::BackendHandle, key: any, value: any, overwrite: bool): bool;
## Gets an entry from the backend.
##
## backend: A handle to a backend connection.
##
## key: The key to look up.
##
## val_type: The type of the value to return.
##
## Returns: A boolean indicating success or failure of the
## operation. Type conversion failures for the value will
## return false.
global get: function(backend: opaque of Storage::BackendHandle, key: any, val_type: any): any;
## Erases an entry from the backend.
##
## backend: A handle to a backend connection.
##
## key: The key to erase.
##
## Returns: A boolean indicating success or failure of the operation.
global erase: function(backend: opaque of Storage::BackendHandle, key: any): bool;
}
function open_backend(btype: Storage::Backend, options: any): opaque of Storage::BackendHandle
{
return Storage::__open_backend(btype, options);
}
function close_backend(backend: opaque of Storage::BackendHandle): bool
{
return Storage::__close_backend(backend);
}
function put(backend: opaque of Storage::BackendHandle, key: any, value: any, overwrite: bool): bool
{
return Storage::__put(backend, key, value, overwrite);
}
function get(backend: opaque of Storage::BackendHandle, key: any, val_type: any): any
{
return Storage::__get(backend, key, val_type);
}
function erase(backend: opaque of Storage::BackendHandle, key: any): bool
{
return Storage::__erase(backend, key);
}