#include "core.idl" module interactions { module request-response { module request-response_interaction_api { interface rrsync_intf { comm_ecode request (in request_data_t requestout, response_data_t response); }; interface rrasync_req_server_intf { comm_ecode request (in request_data_t request, in rr_id_t req_id); }; interface rrasync_resp_intf { comm_ecode response (in response_data_t response, in rr_id_t resp_id); }, interface rrasync_req_client_intf { comm_ecode request (in request_data_t request, out rr_id_t req_id); }; typedef unsigned short rr_id_t; }; porttype rrs_client_port { uses rrsync_intf client_p; }; porttype rrs_server_port { provides rrsync_intf server_p; }; porttype rra_client_port { uses rrasync_req_client_intf client_req_p; provides rrasync_resp_intf client_resp_p; }; porttype rra_server_port { provides rrasync_req_server_intf server_req_p; uses rrasync_resp_intf server_resp_p; }; connector request-response_connector { mirror port rrs_client_port rr_synchronous_client; mirror port rrs_server_port rr_synchronous_server; mirror port rra_client_port rr_asynchronous_client; mirror port rra_server_port rr_asynchronous_server; }; }; module shared-data { module shared-data_interaction_api { interface data_reader { comm_ecode freeze_data (); comm_ecode release_data (); comm_ecode read_data (out shared-data_t data); }; interface data_notification { void on_data_update (); }; interface data_writer { comm_ecode write_data (in shared-data_t data); comm_ecode publish_data (); comm_ecode cancel_data (); }; }; porttype sd_writer_port { uses data_writer writer_p; }; porttype sd_reader_port { uses data_reader reader_p; provides data_notification notification_p; }; connector shared-data_connector { mirror port sd_reader_port sd_reader; mirror port sd_writer_port sd_writer; }; }; };