// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH
#ifndef ORGOMGC4ISERVICE_INTERFACESSUBSYSTEM_SERVICESSUBSYSTEM_CONTROLREGISTER_INTERESTDEFVAR
#define ORGOMGC4ISERVICE_INTERFACESSUBSYSTEM_SERVICESSUBSYSTEM_CONTROLREGISTER_INTERESTDEFVAR
#include "Common_Types.idl"
#include "Requests.idl"
#include "Subsystem_Control.idl"
module org
{
module omg
{
module c4i
{
module Service_Interfaces
{
module Subsystem_Services
{
module Subsystem_Control
{
module Register_Interest
{
// struct holding keys for class confirm_registration_type.
struct confirm_registration_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
// 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;
};
// Confirm registration of interest
// This service allows the CMS to register (and deregister) interest in other
// services. It is explicitly meant to address the possibility of CMS “subscribing”
// to information supplied by the subsystem, with the understanding that the
// information shall be provided by the subsystem, without the need for further
// request. Such mode of operation may be applicable for those services, which have
// been reported as such in Provide subsystem services. This includes typically
// track and plot reporting services, but may involve other services as well.
// The service starts when the actor registers interest in information provided by a
// service. The registration shall include information on:
//
// - The service for which the actor wants to register / deregister his
// interest
// - The information within the service for which the actor wants to register /
// deregister his interest
// - The intended (direct or indirect) recipient(s) of the information provided
// by the subsystem.
// - Any parameters of the provision needed such as Quality of Service
// parameters.
//
// The service ends when the subsystem confirms registration / deregistration of
// interest.
struct confirm_registration_type
{
#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
// 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
};
#ifndef DDS_XTYPES
#pragma keylist confirm_registration_type request_id subsystem_id
#endif
// struct holding keys for class register_interest_type.
struct register_interest_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
// 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;
};
// Register interest in the service
struct register_interest_type
{
#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
// 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
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::interest_list_type the_interest_list;
};
#ifndef DDS_XTYPES
#pragma keylist register_interest_type request_id subsystem_id
#endif
};
};
};
};
};
};
};
#endif