![]() |
Jazz 1.25.+
|
ModelsAPI: The model API. More...
#include <models_api.h>
Public Member Functions | |
ModelsAPI (pLogger a_logger, pConfigFile a_config, pChannels a_channels, pVolatile a_volatile, pPersisted a_persisted, pCore a_core) | |
virtual pChar const | id () |
StatusCode | start () |
StatusCode | shut_down () |
void | base_names (BaseNames &base_names) |
virtual StatusCode | get (pTransaction &p_txn, ApiQueryState &what) |
![]() | |
BaseAPI (pLogger a_logger, pConfigFile a_config, pChannels a_channels, pVolatile a_volatile, pPersisted a_persisted) | |
Creates a BaseAPI service without starting it. | |
bool | parse (ApiQueryState &q_state, pChar p_url, int method, bool recurse=false) |
bool | block_from_const (pTransaction &p_txn, pChar p_const, bool make_tuple=false) |
virtual StatusCode | header (StaticBlockHeader &hea, ApiQueryState &what) |
virtual StatusCode | put (ApiQueryState &where, pBlock p_block, int mode=WRITE_AS_BASE_DEFAULT) |
virtual StatusCode | remove (ApiQueryState &what) |
pChannels | get_channels () |
pVolatile | get_volatile () |
pPersisted | get_persisted () |
![]() | |
Container (pLogger a_logger, pConfigFile a_config) | |
void | enter_read (pTransaction p_txn) |
void | enter_write (pTransaction p_txn) |
void | leave_read (pTransaction p_txn) |
void | leave_write (pTransaction p_txn) |
StatusCode | new_block (pTransaction &p_txn, int cell_type, int *dim, int fill_tensor=FILL_NEW_DONT_FILL, int stringbuff_size=0, const char *p_text=nullptr, char eol='\n', AttributeMap *att=nullptr) |
StatusCode | new_block (pTransaction &p_txn, int num_items, StaticBlockHeader p_hea[], Name p_names[], pBlock p_block[], AttributeMap *dims=nullptr, AttributeMap *att=nullptr) |
StatusCode | new_block (pTransaction &p_txn, pBlock p_from, pBlock p_row_filter, AttributeMap *att=nullptr) |
StatusCode | new_block (pTransaction &p_txn, pTuple p_from, pChar name, AttributeMap *att=nullptr) |
StatusCode | new_block (pTransaction &p_txn, pBlock p_from_text, int cell_type, pKind p_as_kind=nullptr, AttributeMap *att=nullptr) |
StatusCode | new_block (pTransaction &p_txn, pBlock p_from_raw, pChar p_fmt=nullptr, bool ret_as_string=false, AttributeMap *att=nullptr) |
StatusCode | new_block (pTransaction &p_txn, int cell_type) |
StatusCode | new_block (pTransaction &p_txn, Index &index) |
virtual StatusCode | new_transaction (pTransaction &p_txn) |
virtual void | destroy_transaction (pTransaction &p_txn) |
virtual StatusCode | get (pTransaction &p_txn, pChar p_what) |
virtual StatusCode | get (pTransaction &p_txn, pChar p_what, pBlock p_row_filter) |
virtual StatusCode | get (pTransaction &p_txn, pChar p_what, pChar name) |
virtual StatusCode | locate (Locator &location, pChar p_what) |
virtual StatusCode | header (StaticBlockHeader &hea, pChar p_what) |
virtual StatusCode | header (pTransaction &p_txn, pChar p_what) |
virtual StatusCode | put (pChar p_where, pBlock p_block, int mode=WRITE_AS_BASE_DEFAULT) |
virtual StatusCode | new_entity (pChar p_where) |
virtual StatusCode | remove (pChar p_where) |
virtual StatusCode | copy (pChar p_where, pChar p_what) |
virtual StatusCode | exec (pTransaction &p_txn, Locator &function, pTuple p_args) |
virtual StatusCode | modify (Locator &function, pTuple p_args) |
virtual StatusCode | as_locator (Locator &result, pChar p_what) |
virtual StatusCode | get (pTransaction &p_txn, Locator &what) |
virtual StatusCode | get (pTransaction &p_txn, Locator &what, pBlock p_row_filter) |
virtual StatusCode | get (pTransaction &p_txn, Locator &what, pChar name) |
virtual StatusCode | locate (Locator &location, Locator &what) |
virtual StatusCode | header (StaticBlockHeader &hea, Locator &what) |
virtual StatusCode | header (pTransaction &p_txn, Locator &what) |
virtual StatusCode | put (Locator &where, pBlock p_block, int mode=WRITE_AS_BASE_DEFAULT) |
virtual StatusCode | new_entity (Locator &where) |
virtual StatusCode | remove (Locator &where) |
virtual StatusCode | copy (Locator &where, Locator &what) |
StatusCode | unwrap_received (pTransaction &p_txn) |
StatusCode | unwrap_received (pTransaction &p_txn, pBlock p_maybe_block, int rec_size) |
void | base_names (BaseNames &base_names) |
![]() | |
Service (pLogger a_logger, pConfigFile a_config) | |
void | log (int loglevel, const char *message) |
void | log_printf (int loglevel, const char *fmt,...) |
bool | get_conf_key (const char *key, int &value) |
bool | get_conf_key (const char *key, double &value) |
bool | get_conf_key (const char *key, std::string &value) |
Additional Inherited Members | |
![]() | |
TenBitPtrLUT | base_server |
A LUT to convert TenBitsAtAddress(base) into a pContainer. | |
![]() | |
pLogger | p_log |
The logger. | |
pConfigFile | p_conf |
The configuration file. | |
![]() | |
bool | parse_locator (Locator &loc, pChar p_url) |
int | move_const (pChar p_buff, int buff_size, pChar p_url, pChar p_base=nullptr) |
StatusCode | get_right_local (pTransaction &p_txn, ApiQueryState &q_state) |
StatusCode | get_right_remote (pTransaction &p_txn, ApiQueryState &q_state) |
StatusCode | get_left_local (pTransaction &p_txn, ApiQueryState &q_state) |
StatusCode | put_left_local (ApiQueryState &q_state, pBlock p_block) |
![]() | |
void * | malloc (size_t size) |
pBlock | block_malloc (size_t size) |
void | lock_container () |
void | unlock_container () |
StatusCode | destroy_container () |
int | from_hex (char c) |
![]() | |
pChannels | p_channels |
The Channels container. | |
pVolatile | p_volatile |
The Volatile container. | |
pPersisted | p_persisted |
The Persisted container. | |
![]() | |
int | max_transactions |
The configured ONE_SHOT_MAX_TRANSACTIONS. | |
uint64_t | warn_alloc_bytes |
Taken from ONE_SHOT_WARN_BLOCK_KBYTES. | |
uint64_t | fail_alloc_bytes |
Taken from ONE_SHOT_ERROR_BLOCK_KBYTES. | |
uint64_t | alloc_bytes |
The current allocation in bytes. | |
pTransaction | p_buffer |
The buffer for the transactions. | |
pTransaction | p_free |
The free list of transactions. | |
bool | alloc_warning_issued |
True if a warning was issued for over-allocation. | |
Lock32 | _lock_ |
A lock for the deque of transactions. | |
ModelsAPI: The model API.
This class holds an object that can execute via an .exec() method in a similar way as a Core, but using a model as a resolver.
jazz_models::ModelsAPI::ModelsAPI | ( | pLogger | a_logger, |
pConfigFile | a_config, | ||
pChannels | a_channels, | ||
pVolatile | a_volatile, | ||
pPersisted | a_persisted, | ||
pCore | a_core | ||
) |
Create the ModelsAPI without starting it.
a_logger | A pointer to the logger. |
a_config | A pointer to the configuration. |
a_channels | A pointer to the ChannelsAPI. |
a_volatile | A pointer to the VolatileAPI. |
a_persisted | A pointer to the PersistedAPI. |
a_core | A pointer to the CoreAPI. |
|
virtual |
Return object ID.
Reimplemented from jazz_bebop::BaseAPI.
|
virtual |
Starts the ModelsAPI service
Reimplemented from jazz_bebop::BaseAPI.
|
virtual |
Shuts down the ModelsAPI Service
Reimplemented from jazz_bebop::BaseAPI.
void jazz_models::ModelsAPI::base_names | ( | BaseNames & | base_names | ) |
Add the base names for this ModelsAPI.
base_names | A BaseNames map passed by reference to which the base names of this object are added by this call. |
|
virtual |
"API" interface complete Block retrieval. This uses a parse()d what and is the only BasePI + descendants GET method.
p_txn | A pointer to a Transaction passed by reference. If successful, the Container will return a pointer to a Transaction inside the Container. |
what | Some successfully parse()d ApiQueryState that also distinguishes API interface from Container interface. |
It should support the range from APPLY_NOTHING to APPLY_TEXT. This includes function calls APPLY_FUNCTION and APPLY_FUNCT_CONST, but also APPLY_FILTER and APPLY_FILT_CONST to select from the result of a function call. Also, APPLY_URL is very convenient for passing text as an argument to a function. APPLY_NOTHING can return some metadata about the model including a list of endpoints. APPLY_NAME can define specifics of an endpoint. APPLY_RAW and APPLY_TEXT can be used to select the favorite serialization format of the result. Therefore, the function interface should be considered as the whole range and not just APPLY_FUNCTION.
Reimplemented from jazz_bebop::BaseAPI.