mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
111 lines
4.2 KiB
Text
111 lines
4.2 KiB
Text
##! Asynchronous operation methods for the storage framework.
|
|
|
|
@load ./main
|
|
|
|
module Storage::Async;
|
|
|
|
export {
|
|
## Opens a new backend connection based on a configuration object asynchronously.
|
|
## This method must be called via a :zeek:see:`when` condition or an error will
|
|
## be returned.
|
|
##
|
|
## btype: A tag indicating what type of backend should be opened. These are
|
|
## defined by the backend plugins loaded.
|
|
##
|
|
## options: A record containing the configuration for the connection.
|
|
##
|
|
## key_type: The script-level type of keys stored in the backend. Used for
|
|
## validation of keys passed to other framework methods.
|
|
##
|
|
## val_type: The script-level type of keys stored in the backend. Used for
|
|
## validation of values passed to :zeek:see:`Storage::Async::put` as
|
|
## well as for type conversions for return values from
|
|
## :zeek:see:`Storage::Async::get`.
|
|
##
|
|
## Returns: A record containing the status of the operation, and either an error
|
|
## string on failure or a value on success. The value returned here will
|
|
## be an ``opaque of BackendHandle``.
|
|
global open_backend: function(btype: Storage::Backend,
|
|
options: Storage::BackendOptions, key_type: any, val_type: any)
|
|
: Storage::OperationResult;
|
|
|
|
## Closes an existing backend connection asynchronously. This method must be
|
|
## called via a :zeek:see:`when` condition or an error will be returned.
|
|
##
|
|
## backend: A handle to a backend connection.
|
|
##
|
|
## Returns: A record containing the status of the operation and an optional error
|
|
## string for failures.
|
|
global close_backend: function(backend: opaque of Storage::BackendHandle)
|
|
: Storage::OperationResult;
|
|
|
|
## Inserts a new entry into a backend asynchronously. This method must be called
|
|
## via a :zeek:see:`when` condition or an error will be returned.
|
|
##
|
|
## backend: A handle to a backend connection.
|
|
##
|
|
## args: A :zeek:see:`Storage::PutArgs` record containing the arguments for the
|
|
## operation.
|
|
##
|
|
## Returns: A record containing the status of the operation and an optional error
|
|
## string for failures.
|
|
global put: function(backend: opaque of Storage::BackendHandle,
|
|
args: Storage::PutArgs): Storage::OperationResult;
|
|
|
|
## Gets an entry from the backend asynchronously. This method must be called via a
|
|
## :zeek:see:`when` condition or an error will be returned.
|
|
##
|
|
## backend: A handle to a backend connection.
|
|
##
|
|
## key: The key to look up.
|
|
##
|
|
## Returns: A record containing the status of the operation, an optional error
|
|
## string for failures, and an optional value for success. The value
|
|
## returned here will be of the type passed into
|
|
## :zeek:see:`Storage::Async::open_backend`.
|
|
global get: function(backend: opaque of Storage::BackendHandle, key: any)
|
|
: Storage::OperationResult;
|
|
|
|
## Erases an entry from the backend asynchronously. This method must be called via
|
|
## a :zeek:see:`when` condition or an error will be returned.
|
|
##
|
|
## backend: A handle to a backend connection.
|
|
##
|
|
## key: The key to erase.
|
|
##
|
|
## Returns: A record containing the status of the operation and an optional error
|
|
## string for failures.
|
|
global erase: function(backend: opaque of Storage::BackendHandle, key: any)
|
|
: Storage::OperationResult;
|
|
}
|
|
|
|
function open_backend(btype: Storage::Backend, options: Storage::BackendOptions,
|
|
key_type: any, val_type: any): Storage::OperationResult
|
|
{
|
|
return Storage::Async::__open_backend(btype, options, key_type, val_type);
|
|
}
|
|
|
|
function close_backend(backend: opaque of Storage::BackendHandle)
|
|
: Storage::OperationResult
|
|
{
|
|
return Storage::Async::__close_backend(backend);
|
|
}
|
|
|
|
function put(backend: opaque of Storage::BackendHandle, args: Storage::PutArgs)
|
|
: Storage::OperationResult
|
|
{
|
|
return Storage::Async::__put(backend, args$key, args$value, args$overwrite,
|
|
args$expire_time);
|
|
}
|
|
|
|
function get(backend: opaque of Storage::BackendHandle, key: any)
|
|
: Storage::OperationResult
|
|
{
|
|
return Storage::Async::__get(backend, key);
|
|
}
|
|
|
|
function erase(backend: opaque of Storage::BackendHandle, key: any)
|
|
: Storage::OperationResult
|
|
{
|
|
return Storage::Async::__erase(backend, key);
|
|
}
|