yumapro
24.10-2
YumaPro SDK
|
SIL Transactions are initiated from the main server. More...
Data Structures | |
struct | agt_sil_added_edit_t |
Set Hook added edits from subsystem(s) More... | |
Typedefs | |
typedef void(* | agt_sil_get_walker_fn_t) (getcb_get2_t *get2cb, const xmlChar *subsys_id, status_t get_status, val_value_t *return_val) |
get walker function for processing results from remote GET transaction from 1 or more subsystems More... | |
typedef status_t(* | agt_sil_rpc_walker_fn_t) (const xmlChar *subsys_id, status_t rpc_status, val_value_t *return_val, dlq_hdr_t *saveQ) |
RPC walker function for processing results from remote GET transaction from 1 or more subsystems. More... | |
typedef status_t(* | agt_sil_shook_walker_fn_t) (ses_cb_t *scb, rpc_msg_t *msg, agt_cfg_transaction_t *txcb, const xmlChar *subsys_id, status_t tx_status, dlq_hdr_t *edded_editQ) |
Set Hook walker function. More... | |
Functions | |
status_t | agt_sil_init (void) |
Initialize the SIL features module (phase 2) More... | |
void | agt_sil_cleanup (void) |
Cleanup the SIL Features Module. More... | |
status_t | agt_sil_start_transaction (agt_cfg_transaction_t *txcb, const xmlChar *user_id, const xmlChar *client_addr, const xmlChar *target, boolean is_validate, boolean is_replay, boolean is_reverse_edit, boolean is_load_config, boolean is_hook_load, boolean is_hook_validate, dlq_hdr_t *editQ) |
Start Transaction Handler. More... | |
status_t | agt_sil_continue_start_transaction (agt_cfg_transaction_t *txcb, const xmlChar *user_id, const xmlChar *client_addr, const xmlChar *target, boolean is_replay, dlq_hdr_t *editQ) |
Continue already existed Start Transaction. More... | |
status_t | agt_sil_continue_transaction (const xmlChar *txid_str, agt_cbtyp_t cur_phase) |
Continue a transaction to apply or commit phase. More... | |
void | agt_sil_end_transaction (const xmlChar *txid_str) |
End a transaction. More... | |
void | agt_sil_cancel_transaction (const xmlChar *txid_str) |
Cancel and delete the transaction. More... | |
status_t | agt_sil_send_load_event (const xmlChar *name, boolean is_bundle, boolean is_load) |
Send a <load-event> to all subsystems. More... | |
status_t | agt_sil_send_stream_callback_event (const xmlChar *subsys_id, const xmlChar *modname, const xmlChar *stream_name, boolean all_streams, agt_not_subevent_t subevent) |
Send a "<stream-callback-event>" message to one subsystem. More... | |
boolean | agt_sil_edit_transaction_in_progress (void) |
Check if a SIL-SA transaction is in progress. More... | |
void | agt_sil_check_deleted_edits (agt_cfg_transaction_t *txcb) |
Check for deleted edits. More... | |
status_t | agt_sil_start_get_transaction (ses_cb_t *client_scb, getcb_get2_t *get2cb, xml_msg_hdr_t *msg, const xmlChar **txid_str) |
Start a GET2 transaction. More... | |
status_t | agt_sil_get_transaction_status (const xmlChar *txid_str) |
Get the GET2 transaction status. More... | |
void | agt_sil_walk_get_results (const xmlChar *txid_str, agt_sil_get_walker_fn_t get_walker_fn) |
Walk the GET2 results. More... | |
status_t | agt_sil_walk_rpc_results (const xmlChar *txid_str, agt_sil_rpc_walker_fn_t rpc_walker_fn, dlq_hdr_t *saveQ) |
Walk the RPC transaction results. More... | |
status_t | agt_sil_walk_shook_results (ses_cb_t *scb, rpc_msg_t *msg, agt_cfg_transaction_t *txcb, const xmlChar *txid_str, agt_sil_shook_walker_fn_t shook_walker_fn) |
Walk the Set Hook results. More... | |
void | agt_sil_end_get_transaction (const xmlChar *txid_str) |
End a GET2 transaction. More... | |
void | agt_sil_set_subsys_timeout (uint32 val) |
Set the subsys-timeout parameter. More... | |
status_t | agt_sil_start_rpc_transaction (ses_cb_t *client_scb, rpc_msg_t *msg, obj_template_t *obj, val_value_t *actionval, const xmlChar **txid_str) |
Start an RPC transaction. More... | |
status_t | agt_sil_rpc_transaction_status (const xmlChar *txid_str) |
Get RPC transaction status. More... | |
void | agt_sil_end_rpc_transaction (const xmlChar *txid_str) |
End an RPC transaction. More... | |
status_t | agt_sil_handle_remote_trans_start (ses_cb_t *client_scb, const xmlChar *client_txid, boolean isvalidate, boolean isrollback, boolean isrunning) |
Handle a remote transaction. More... | |
status_t | agt_sil_transaction_complete_cb (const xmlChar *txid_str) |
SIL transaction complete callback. More... | |
status_t | agt_sil_get_exit_mode_edit (const xmlChar *txid_str, agt_tx_type_t tx_type, val_value_t **error_val, xmlChar **error_path, xmlChar **error_msg, boolean *need_reverse_edit) |
Get the transaction exit code. More... | |
status_t | agt_sil_get_exit_mode (const xmlChar *txid_str, agt_tx_type_t tx_type) |
Get the transaction exit code. More... | |
boolean | agt_sil_last_in_transaction (const xmlChar *txid_str, ses_id_t sid) |
Check if the session is the last in the current transaction. More... | |
void | agt_sil_unload_module (const xmlChar *modname) |
Unload a module from the subsystem register messages so the cleanup is not attempted again during system cleanup. More... | |
status_t | agt_sil_bundle_walker (const xmlChar *name, void *cookie) |
Callback for bundles. More... | |
status_t | agt_sil_module_walker (const xmlChar *name, void *cookie) |
Callback for dynamically loaded modules. More... | |
status_t | agt_sil_handle_remote_commit_completeness (ses_cb_t *client_scb, const xmlChar *client_txid, agt_cbtyp_t cbtyp, agt_commit_type_t commit_type) |
Handle remote SIL-SA subsytem Commit Completeness callbacks. More... | |
boolean | agt_sil_subsys_registered (const xmlChar *subsys_id) |
Check if the subsystem has a SIL-SA service registered. More... | |
boolean | agt_sil_has_subsys_glob_action (void) |
| |
boolean | agt_sil_has_subsys_glob_edit2 (void) |
| |
boolean | agt_sil_has_subsys_glob_edit3 (void) |
| |
boolean | agt_sil_has_subsys_glob_get (void) |
| |
boolean | agt_sil_has_subsys_glob_rpc (void) |
| |
boolean | agt_sil_has_subsys_glob_any (void) |
Check if there any any Global callbacks in subsystem. More... | |
boolean | agt_sil_has_subsys_glob_edit (void) |
Check if there any EDIT2/3 Global callbacks in subsystem. More... | |
xmlChar * | agt_sil_get_edit_subsys_id (void) |
Get the subsystem ID that holds Global EDIT callback. More... | |
SIL Transactions are initiated from the main server.
The local or remote SIL callbacks are invoked as needed for a transaction-in-progress.
typedef void(* agt_sil_get_walker_fn_t) (getcb_get2_t *get2cb, const xmlChar *subsys_id, status_t get_status, val_value_t *return_val) |
get walker function for processing results from remote GET transaction from 1 or more subsystems
get2cb | request get2 control block |
subsys_id | subsystem ID string |
get_status | operation status for this subsystem |
return_val | <get-response> value for this subsystem, if any |
typedef status_t(* agt_sil_rpc_walker_fn_t) (const xmlChar *subsys_id, status_t rpc_status, val_value_t *return_val, dlq_hdr_t *saveQ) |
RPC walker function for processing results from remote GET transaction from 1 or more subsystems.
subsys_id | subsystem ID string |
rpc_status | operation status for this subsystem |
return_val | <rpc-response> value for this subsystem, if any |
saveQ | Q to save val_value_t structs from responsess |
typedef status_t(* agt_sil_shook_walker_fn_t) (ses_cb_t *scb, rpc_msg_t *msg, agt_cfg_transaction_t *txcb, const xmlChar *subsys_id, status_t tx_status, dlq_hdr_t *edded_editQ) |
Set Hook walker function.
Set Hook walker function for processing added edit lists from remote EDIT transaction from 1 or more subsystems
scb | session control block invoking the callback | |
msg | RPC message in progress | |
txcb | transaction control block to check | |
subsys_id | subsystem ID string | |
tx_status | operation status for this subsystem | |
[out] | edded_editQ | Q of edded edits from 1 subsystem edded_editQ entries may be added |
status_t agt_sil_bundle_walker | ( | const xmlChar * | name, |
void * | cookie | ||
) |
Callback for bundles.
name | the bundle name |
cookie | cookie passed to agt_ncx_load_for_all_bundles |
void agt_sil_cancel_transaction | ( | const xmlChar * | txid_str | ) |
Cancel and delete the transaction.
The transaction may have any subsystems active
txid_str | transaction-id string |
void agt_sil_check_deleted_edits | ( | agt_cfg_transaction_t * | txcb | ) |
Check for deleted edits.
txcb | transaction in progress to check |
void agt_sil_cleanup | ( | void | ) |
Cleanup the SIL Features Module.
Called by the server during shutdown
status_t agt_sil_continue_start_transaction | ( | agt_cfg_transaction_t * | txcb, |
const xmlChar * | user_id, | ||
const xmlChar * | client_addr, | ||
const xmlChar * | target, | ||
boolean | is_replay, | ||
dlq_hdr_t * | editQ | ||
) |
Continue already existed Start Transaction.
Used for Added by Set Hook edits. Can be called only right after Start Transaction. Using the same message as for Start Transaction
txcb | transaction control block to check |
user_id | user initiating this transaction |
client_addr | IP address of client session |
target | datastore target |
is_replay | TRUE for <replay-config> operation; FALSE for normal edit |
editQ | Q of edits to encode (Q of agt_cfg_silcall_t) |
status_t agt_sil_continue_transaction | ( | const xmlChar * | txid_str, |
agt_cbtyp_t | cur_phase | ||
) |
Continue a transaction to apply or commit phase.
txid_str | transaction-id string |
cur_phase | transaction callback phase to invoke |
boolean agt_sil_edit_transaction_in_progress | ( | void | ) |
Check if a SIL-SA transaction is in progress.
void agt_sil_end_get_transaction | ( | const xmlChar * | txid_str | ) |
End a GET2 transaction.
txid_str | transaction ID string to end |
void agt_sil_end_rpc_transaction | ( | const xmlChar * | txid_str | ) |
End an RPC transaction.
txid_str | transaction ID string to end |
void agt_sil_end_transaction | ( | const xmlChar * | txid_str | ) |
End a transaction.
txid_str | transaction-id string |
xmlChar * agt_sil_get_edit_subsys_id | ( | void | ) |
Get the subsystem ID that holds Global EDIT callback.
INTERNAL API
status_t agt_sil_get_exit_mode | ( | const xmlChar * | txid_str, |
agt_tx_type_t | tx_type | ||
) |
Get the transaction exit code.
YPW-1545: memory usage malfanction
Get the reason code for exiting YControl IO mode Can only be called once for each txid value!!! Causes stored txid_in_progress record to be deleted and txid_doneQ will be also cleaned up
Checks the status of the transaction phase that completed: The agt_ncxserver_run loop exited because the timer expired or the phase completed OK, or 1 of the subsystems responded with an error
txid_str | transaction-id string |
tx_type | transaction type (GET|HOOK|RPC) |
status_t agt_sil_get_exit_mode_edit | ( | const xmlChar * | txid_str, |
agt_tx_type_t | tx_type, | ||
val_value_t ** | error_val, | ||
xmlChar ** | error_path, | ||
xmlChar ** | error_msg, | ||
boolean * | need_reverse_edit | ||
) |
Get the transaction exit code.
YPW-1872: SIL-SA custom error messages support
Get the reason code for exiting YControl IO mode For EDIT requests only
Checks the status of the transaction phase that completed: The agt_ncxserver_run loop exited because the timer expired or the phase completed OK, or 1 of the subsystems responded with an error
txid_str | transaction-id string. Find this transaction. | |
tx_type | transaction type (EDIT). Find this transaction type. | |
[out] | error_val | address of newval or curval causing error *error_val set to the value causing the error |
[out] | error_path | address of error string to use in error response; *error_path set to the error path string to use in the error report. |
[out] | error_msg | pointer to error message string to use in error response; *error_msg set to the error message string to use. |
[out] | need_reverse_edit | address of return address flag *need_reverse_edit TRUE if need for reverse edit detected |
status_t agt_sil_get_transaction_status | ( | const xmlChar * | txid_str | ) |
Get the GET2 transaction status.
txid_str | transaction-id string |
status_t agt_sil_handle_remote_commit_completeness | ( | ses_cb_t * | client_scb, |
const xmlChar * | client_txid, | ||
agt_cbtyp_t | cbtyp, | ||
agt_commit_type_t | commit_type | ||
) |
Handle remote SIL-SA subsytem Commit Completeness callbacks.
INTERNAL API
client_scb | session to use |
client_txid | server transaction ID string to use |
cbtyp | callback phase enum |
commit_type | commit type; only if phase is Commit |
status_t agt_sil_handle_remote_trans_start | ( | ses_cb_t * | client_scb, |
const xmlChar * | client_txid, | ||
boolean | isvalidate, | ||
boolean | isrollback, | ||
boolean | isrunning | ||
) |
Handle a remote transaction.
client_scb | session to use |
client_txid | Server transaction ID string to use |
isvalidate | TRUE if this is Transaction is for Validate |
isrollback | TRUE if this is Transaction for Rollback or Load |
isrunning | TRUE if running datastore is being modified |
boolean agt_sil_has_subsys_glob_action | ( | void | ) |
Can be only one at a time for any given subsystem
INTERNAL API
boolean agt_sil_has_subsys_glob_any | ( | void | ) |
Check if there any any Global callbacks in subsystem.
Can be only one at a time for any given subsystem
INTERNAL API
boolean agt_sil_has_subsys_glob_edit | ( | void | ) |
Check if there any EDIT2/3 Global callbacks in subsystem.
Can be only one at a time for any given subsystem
INTERNAL API
boolean agt_sil_has_subsys_glob_edit2 | ( | void | ) |
Can be only one at a time for any given subsystem
INTERNAL API
boolean agt_sil_has_subsys_glob_edit3 | ( | void | ) |
Can be only one at a time for any given subsystem
INTERNAL API
boolean agt_sil_has_subsys_glob_get | ( | void | ) |
Can be only one at a time for any given subsystem
INTERNAL API
boolean agt_sil_has_subsys_glob_rpc | ( | void | ) |
Can be only one at a time for any given subsystem
INTERNAL API
status_t agt_sil_init | ( | void | ) |
Initialize the SIL features module (phase 2)
boolean agt_sil_last_in_transaction | ( | const xmlChar * | txid_str, |
ses_id_t | sid | ||
) |
Check if the session is the last in the current transaction.
Figure out if the specified session ID is the only one in the specified transaction. If so, the caller will exit the agt_ncxserver_run_ycontrol function. If the SID is not involved in this transaction, or other subsystems are involved besides the specified SID, then the function will return FALSE
txid_str | transaction ID string to check |
sid | session ID to check |
status_t agt_sil_module_walker | ( | const xmlChar * | name, |
void * | cookie | ||
) |
Callback for dynamically loaded modules.
name | the module name |
cookie | cookie passed to agt_ncx_load_for_all_bundles |
status_t agt_sil_rpc_transaction_status | ( | const xmlChar * | txid_str | ) |
Get RPC transaction status.
txid_str | transaction-id string |
status_t agt_sil_send_load_event | ( | const xmlChar * | name, |
boolean | is_bundle, | ||
boolean | is_load | ||
) |
Send a <load-event> to all subsystems.
TBD: send to specific subsystems
name | name of module or bundle |
is_bundle | TRUE if name is a bundle; FALSE if a module |
is_load | TRUE if load event; FALSE if unload event |
status_t agt_sil_send_stream_callback_event | ( | const xmlChar * | subsys_id, |
const xmlChar * | modname, | ||
const xmlChar * | stream_name, | ||
boolean | all_streams, | ||
agt_not_subevent_t | subevent | ||
) |
Send a "<stream-callback-event>" message to one subsystem.
subsys_id | name of subsystem to get this event |
modname | name of module that registered callback |
stream_name | stream that this callback is about |
all_streams | flag used to register entry |
subevent | subevent code to use |
void agt_sil_set_subsys_timeout | ( | uint32 | val | ) |
Set the subsys-timeout parameter.
val | value to use for timeout in seconds |
status_t agt_sil_start_get_transaction | ( | ses_cb_t * | client_scb, |
getcb_get2_t * | get2cb, | ||
xml_msg_hdr_t * | msg, | ||
const xmlChar ** | txid_str | ||
) |
Start a GET2 transaction.
client_scb | client session requesting GET operation | |
get2cb | get2 control block to use | |
msg | message header to use | |
[out] | txid_str | address of return transaction ID string *txid_str backptr to transaction ID string |
status_t agt_sil_start_rpc_transaction | ( | ses_cb_t * | client_scb, |
rpc_msg_t * | msg, | ||
obj_template_t * | obj, | ||
val_value_t * | actionval, | ||
const xmlChar ** | txid_str | ||
) |
Start an RPC transaction.
client_scb | session control block to use | |
msg | rpc message | |
obj | RPC object being invoked | |
actionval | action value in use if ACTION | |
[out] | txid_str | address of return transaction ID string *txid_str backptr to transaction ID string |
status_t agt_sil_start_transaction | ( | agt_cfg_transaction_t * | txcb, |
const xmlChar * | user_id, | ||
const xmlChar * | client_addr, | ||
const xmlChar * | target, | ||
boolean | is_validate, | ||
boolean | is_replay, | ||
boolean | is_reverse_edit, | ||
boolean | is_load_config, | ||
boolean | is_hook_load, | ||
boolean | is_hook_validate, | ||
dlq_hdr_t * | editQ | ||
) |
Start Transaction Handler.
txcb | transaction control block to use |
user_id | user initiating this transaction |
client_addr | IP address of client session |
target | datastore target |
is_validate | TRUE for <validate> operation FALSE for normal edit |
is_replay | TRUE for <replay-config> operation FALSE for normal edit |
is_reverse_edit | TRUE for undo of commited edit(s) in the form of a new reverse edit FALSE for normal edit |
is_load_config | TRUE for <load-config> operation FALSE for normal edit |
is_hook_load | TRUE if this is the LOAD operation |
is_hook_validate | TRUE if this is validate OP |
editQ | Q of edits to encode (Q of agt_cfg_silcall_t) |
boolean agt_sil_subsys_registered | ( | const xmlChar * | subsys_id | ) |
Check if the subsystem has a SIL-SA service registered.
INTERNAL API
subsys_id | subsys identifier to check |
status_t agt_sil_transaction_complete_cb | ( | const xmlChar * | txid_str | ) |
SIL transaction complete callback.
txid_str | transaction ID string to end |
void agt_sil_unload_module | ( | const xmlChar * | modname | ) |
Unload a module from the subsystem register messages so the cleanup is not attempted again during system cleanup.
modname | module name to find and remove register message |
void agt_sil_walk_get_results | ( | const xmlChar * | txid_str, |
agt_sil_get_walker_fn_t | get_walker_fn | ||
) |
Walk the GET2 results.
Check the results of the get retrieval from each subsystem The walker function is called for each subsystem
txid_str | get transaction IS string |
get_walker_fn | get results walker function |
status_t agt_sil_walk_rpc_results | ( | const xmlChar * | txid_str, |
agt_sil_rpc_walker_fn_t | rpc_walker_fn, | ||
dlq_hdr_t * | saveQ | ||
) |
Walk the RPC transaction results.
Check the results of the RPC retrieval from each subsystem The walker function is called for each subsystem
txid_str | get transaction IS string |
rpc_walker_fn | RPC results walker function |
saveQ | Q to save the results |
status_t agt_sil_walk_shook_results | ( | ses_cb_t * | scb, |
rpc_msg_t * | msg, | ||
agt_cfg_transaction_t * | txcb, | ||
const xmlChar * | txid_str, | ||
agt_sil_shook_walker_fn_t | shook_walker_fn | ||
) |
Walk the Set Hook results.
Check the results of the RPC retrieval from each subsystem The walker function is called for each subsystem
scb | session control block invoking the callback |
msg | RPC message in progress |
txcb | transaction control block to check |
txid_str | get transaction IS string |
shook_walker_fn | Hook results walker function |