// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH #ifndef ORGOMGC4ISERVICE_INTERFACESSUBSYSTEM_SERVICESEXTENDED_SUBSYSTEM_CONTROLMANAGE_NETWORK_PARTICIPATIONDEFVAR #define ORGOMGC4ISERVICE_INTERFACESSUBSYSTEM_SERVICESEXTENDED_SUBSYSTEM_CONTROLMANAGE_NETWORK_PARTICIPATIONDEFVAR #include "Common_Types.idl" #include "Requests.idl" module org { module omg { module c4i { module Service_Interfaces { module Subsystem_Services { module Extended_Subsystem_Control { module Manage_Network_Participation { // Send a report to the CMS when the // The purpose of this interface is to provide a mechanism for a CMS to manage the // connectivity of the OARIS data exchange through some external network gateway // represented by the Subsystem interface in this use case. When connectivity is // established, information can be exchanged between the local CMS and local // Subsystems with other CMS and Subsystems connected by this network as if they // were locally connected from a functional viewpoint. // Additional Information: // The management of such network connectivity may be integral for the sharing of // plot data between distributed platforms. struct report_network_status_type { // The name identifying the network string network_name; // Indicates which subsystem published the data or is intended to read it as a // subscriber #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #else org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #endif // The subsystems joined to the network at the node that the CMS is controlling org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type joined_local_subsystems; // The subsystems joined to the network at other nodes org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type joined_remote_subsystems; }; #ifndef DDS_XTYPES #pragma keylist report_network_status_type subsystem_id #endif // struct holding keys for class network_status_response_type. struct network_status_response_key_type { // Indicates which subsystem published the data or is intended to read it as a // subscriber org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; // The identifier of the originating request org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; }; // The purpose of this interface is to provide a mechanism for a CMS to manage the // connectivity of the OARIS data exchange through some external network gateway // represented by the Subsystem interface in this use case. When connectivity is // established, information can be exchanged between the local CMS and local // Subsystems with other CMS and Subsystems connected by this network as if they // were locally connected from a functional viewpoint. // Additional Information: // The management of such network connectivity may be integral for the sharing of // plot data between distributed platforms. struct network_status_response_type { // The identifyng name for the network string network_name; // Indicates which subsystem published the data or is intended to read it as a // subscriber #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #else org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #endif // True if the subsystem is joined to the network; false otherwise boolean is_joined; // The identifier for the subsystem that is the subject of the request org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type statused_subsystem_id; // The identifier of the originating request #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #else org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #endif }; #ifndef DDS_XTYPES #pragma keylist network_status_response_type subsystem_id request_id #endif // struct holding keys for class request_network_status_type. struct request_network_status_key_type { // Indicates which subsystem published the data or is intended to read it as a // subscriber org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; // The unique identifier for this specific request org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; }; struct request_network_status_type { // The name identifying the network string network_name; // Indicates which subsystem published the data or is intended to read it as a // subscriber #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #else org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #endif // The unique identifier for this specific request #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #else org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #endif }; #ifndef DDS_XTYPES #pragma keylist request_network_status_type subsystem_id request_id #endif // struct holding keys for class join_network_type. struct join_network_key_type { // Indicates which subsystem published the data or is intended to read it as a // subscriber org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; // The unique identifier for this specific request org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; }; struct join_network_type { // The name identifying the network to be joined string network_name; // Indicates which subsystem published the data or is intended to read it as a // subscriber #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #else org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #endif // The unique identifier for this specific request #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #else org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #endif // The unique identifier of the subsystem to join the network org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type joining_subsystem_id; }; #ifndef DDS_XTYPES #pragma keylist join_network_type subsystem_id request_id #endif // struct holding keys for class leave_network_type. struct leave_network_key_type { // Indicates which subsystem published the data or is intended to read it as a // subscriber org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; // The unique identifier for this specific request org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; }; struct leave_network_type { // The name identifying the network to be left string network_name; // Indicates which subsystem published the data or is intended to read it as a // subscriber #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #else org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id; #endif // The unique identifier for this specific request #ifdef DDS_XTYPES @key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #else org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id; #endif // The unique identifier for the subsystem to leave the network org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type leaving_subsystem_id; }; #ifndef DDS_XTYPES #pragma keylist leave_network_type subsystem_id request_id #endif }; }; }; }; }; }; }; #endif