yumapro  20.10-12
YumaPro SDK
agt_ycontrol.h File Reference

Handle the YumaPro Control Protocol <ycontrol> (top-level) element. More...

#include "agt_rpc.h"
#include "ses.h"
#include "status.h"
#include "xml_util.h"
#include "xmlns.h"
#include "ycontrol_types.h"
Include dependency graph for agt_ycontrol.h:

Go to the source code of this file.

Data Structures

struct  agt_ycontrol_cb_t_
 control block for 1 registered service handler More...
 
struct  agt_ycontrol_subsys_t_
 control block for connected 1 subsystem; used to send event messages to the subsystem More...
 

Macros

#define AGT_YCONTROL_MAX_SERVICES   4
 number of services hard-wired based on defined YumaPro features
 

Typedefs

typedef status_t(* agt_ycontrol_service_fn_t) (ses_cb_t *scb, ycontrol_msgtype_t msgtype, uint32 msgid, const xmlChar *subsys_id, ycontrol_msgbody_t msgbody_type, val_value_t *msgbody, boolean *scb_valid)
 Callback template for YControl services: message handler. More...
 
typedef void(* agt_ycontrol_subsys_gone_fn_t) (const xmlChar *subsys_id)
 brief Callback template for YControl services: subsys gone handler More...
 

Functions

status_t agt_ycontrol_init1 (void)
 Initialize the agt_ycontrol module (phase 1) More...
 
status_t agt_ycontrol_init2 (void)
 Initialize the agt_ycontrol module (phase 2) More...
 
void agt_ycontrol_cleanup (void)
 Cleanup the agt_ycontrol module. More...
 
boolean agt_ycontrol_dispatch (ses_cb_t *scb, xml_node_t *top)
 Handle an incoming <ycontrol> message from a subsystem. More...
 
status_t agt_ycontrol_send_payload (ses_cb_t *scb, const xmlChar *service_id, uint32 *msgid, ycontrol_msgtype_t msgtype, val_value_t *service_payload, boolean with_ywattrs)
 Send the subsystem <ycontrol> message to the sevice manager on the specified session, using the <payload> variant. More...
 
status_t agt_ycontrol_send_callback (ses_cb_t *scb, const xmlChar *service_id, uint32 *msgid, ycontrol_msgtype_t msgtype, boolean with_ywattrs, obj_template_t *service_obj, agt_rpc_data_cb_t data_cbfn, rpc_msg_t *rpcmsg)
 Send the subsystem <ycontrol> message to the sevice manager on the specified session, using the <payload> variant. More...
 
status_t agt_ycontrol_send_error (ses_cb_t *scb, const xmlChar *service_id, uint32 msgid, status_t res, const xmlChar *errstr)
 Send a ycontrol error message. More...
 
status_t agt_ycontrol_send_ok (ses_cb_t *scb, const xmlChar *service_id, uint32 msgid)
 Send a ycontrol OK message. More...
 
status_t agt_ycontrol_send_event (const xmlChar *service_id, val_value_t *service_payload, boolean with_ywattrs)
 Send a server event to all the active subsystems. More...
 
status_t agt_ycontrol_send_event_subsys (const xmlChar *service_id, val_value_t *service_payload, boolean with_ywattrs, const xmlChar *subsys_id)
 Send a server event to a specific subsystem or all subsystems. More...
 
status_t agt_ycontrol_register_service (const xmlChar *service_name, agt_ycontrol_service_fn_t service_fn)
 Register a YControl service layer. More...
 
status_t agt_ycontrol_register_service_ex (const xmlChar *service_name, agt_ycontrol_service_fn_t service_fn, agt_ycontrol_subsys_gone_fn_t subsys_gone_fn)
 Register a YControl service layer (extended) More...
 
void agt_ycontrol_unregister_service (const xmlChar *service_name)
 un-register a callback for 1 YControl service type More...
 
status_t agt_ycontrol_add_subsys (ses_id_t subsys_sid, const xmlChar *subsys_id)
 Add a subsystem connection to the ycontrol manager. More...
 
void agt_ycontrol_remove_subsys (ses_id_t sid, const xmlChar *subsys_id)
 Remove a subsystem connection to the ycontrol manager because the connection was closed or shutting down. More...
 
obj_template_t * agt_ycontrol_get_obj (void)
 Get the ycontrol container object. More...
 
ses_cb_t * agt_ycontrol_get_scb (const xmlChar *subsys_id)
 Get the session control block for the specified subsys ID. More...
 
void agt_ycontrol_drop_session (ses_id_t sid)
 Notify the agt_ycontrol module that a YControl session has been closed and needs to be cleaned up. More...
 
boolean agt_ycontrol_any_subsys_active (void)
 Check if there are any subsystems active. More...
 
status_t agt_ycontrol_send_shutdown_event (void)
 Send a <shutdown-event> message to all subsystems. More...
 
boolean agt_ycontrol_init_was_done (void)
 Return TRUE if this module has been initialized. More...
 
const xmlChar * agt_ycontrol_get_subsys_id (ses_id_t sid)
 Get the subsystem-id for the session ID. More...
 

Detailed Description

Handle the YumaPro Control Protocol <ycontrol> (top-level) element.