// copyright 2021-23 BAE Systems // copyright 2023 Real-Time Innovations // copyright 2023 Sparx Systems Pty Ltd // copyright 2023 SimVentions // copyright 2023 Open Text Inc. // copyright 2021-23 Object Management Group Inc // Version 1.0 #ifndef ORGOMGTDAIMETAMODELSERVICEMODELRECOMMENDATIONSDEFVAR #define ORGOMGTDAIMETAMODELSERVICEMODELRECOMMENDATIONSDEFVAR #include "Recommendation.idl" #include "Util.idl" module org { module omg { module tdai { module MetaModel { module ServiceModel { // This package defines the elements of the generic recommendation and response // pattern used by Tactical Decision Aids to make recommendations module Recommendations { // This is the DDS Topic type for invoking and implementing the recommendationProcessed method on the Response interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // This callback operation is invoked on the Tactical Decision Aid when the // recommendation that it has made is accepted, deferred or rejected. This allows // the Tactical Decision Aid to understand when a recommendation is in progress and // to avoid redundantly repeating recommendations. // There is one invocation of this callback per recommendation unless the first // Outcome is Deferred, in which case there are two. This is shown in the // Recommendation Outcome State Machine diagram. // This interface is implemented by a tactical decision aid in order to receive // responses to its recommendations. Each response operation contains a reference to // the information contained in the corresponding recommendation. struct recommendationProcessed { // Additional contextual and qualification data for the response. #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::DataModel::Recommendation::ResponseData response; #else org::omg::tdai::MetaModel::DataModel::Recommendation::ResponseData response; #endif // The outcome of the recommendation process org::omg::tdai::MetaModel::DataModel::Recommendation::Outcome outcome; // Where available, an explanation of the recommendation processing, such as a // reason for rejection. org::omg::tdai::MetaModel::DataModel::Recommendation::ResponseExplanation explanation; }; #ifndef DDS_XTYPES #pragma keylist recommendationProcessed response.recommendationRef.clientId response.recommendationRef.requestId #endif // This interface is implemented by a tactical decision aid in order to receive // responses to its recommendations. Each response operation contains a reference to // the information contained in the corresponding recommendation. struct Response { #ifdef DDS_XTYPES @key short clientId; #else short clientId; #endif #ifdef DDS_XTYPES @key short requestId; #else short requestId; #endif }; // Additional information to describe and qualify all recommendations struct RecommendationMetadata { // The statistical confidence in the Recommendation org::omg::tdai::MetaModel::DataModel::Recommendation::Confidence confidence; // The behavior required of the recipient org::omg::tdai::MetaModel::DataModel::Recommendation::RecommendationBehavior behavior; // Additional extensible properties of the Recommendation org::omg::tdai::MetaModel::DataModel::Recommendation::RecommendationProperties properties; // The interface instance to which responses to the recommendation should be // directed #ifdef DDS_XTYPES @key Response respondee; #else Response respondee; #endif }; // This is the DDS Topic type for invoking and implementing the getSupportMapping method on the Configuration interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // This operation returns the location of a resource defining the implementing // component's support for extensible enumeration values. The resource defines // supported extensible enumeration values, maps them to extensible enumeration // datatypes defined by this specification and external specifications from which // they are derived. // This interface allows clients (tactical decision aids) to determine system // support for the interface in terms of extensibility methods and the operations // implemented. struct getSupportMapping { // A reference to the originating request for this response. #ifdef DDS_XTYPES @key Response respondee; #else Response respondee; #endif }; #ifndef DDS_XTYPES #pragma keylist getSupportMapping respondee.clientId respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the getSupportMapping method on the Configuration interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // This operation returns the location of a resource defining the implementing // component's support for extensible enumeration values. The resource defines // supported extensible enumeration values, maps them to extensible enumeration // datatypes defined by this specification and external specifications from which // they are derived. // This interface allows clients (tactical decision aids) to determine system // support for the interface in terms of extensibility methods and the operations // implemented. struct getSupportMappingResponse { // This operation returns the location of a resource defining the implementing // component's support for extensible enumeration values. The resource defines // supported extensible enumeration values, maps them to extensible enumeration // datatypes defined by this specification and external specifications from which // they are derived. org::omg::tex::DataPayload::Util::URL returnValue; // A reference to the originating request for this response. #ifdef DDS_XTYPES @key Response respondee; #else Response respondee; #endif }; #ifndef DDS_XTYPES #pragma keylist getSupportMappingResponse respondee.clientId respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the cancelRecommendation method on the RecommendationManagement interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // struct cancelRecommendation { // This reference to the response for the recommendation to be cancelled provides a // unique reference to the recommendation itself #ifdef DDS_XTYPES @key Response respondee; #else Response respondee; #endif }; #ifndef DDS_XTYPES #pragma keylist cancelRecommendation respondee.clientId respondee.requestId #endif }; }; }; }; }; }; #endif