Line data Source code
1 : /* 2 : * Distributed under the OpenDDS License. 3 : * See: http://www.opendds.org/license.html 4 : */ 5 : #ifndef OPENDDS_DCPS_RTPS_LOCAL_ENTITIES_H 6 : #define OPENDDS_DCPS_RTPS_LOCAL_ENTITIES_H 7 : 8 : #include <dds/Versioned_Namespace.h> 9 : 10 : #include <dds/DCPS/DataReaderCallbacks.h> 11 : #include <dds/DCPS/DataWriterCallbacks.h> 12 : #include <dds/DCPS/GuidUtils.h> 13 : #include <dds/DCPS/SequenceNumber.h> 14 : #include <dds/DCPS/Time_Helper.h> 15 : #include <dds/DCPS/XTypes/TypeObject.h> 16 : #include <dds/DdsDcpsGuidC.h> 17 : #include <dds/DdsDcpsInfoUtilsC.h> 18 : 19 : #ifdef OPENDDS_SECURITY 20 : # include <dds/DCPS/Ice.h> 21 : # include <dds/DdsSecurityCoreC.h> 22 : #endif 23 : 24 : #ifndef ACE_LACKS_PRAGMA_ONCE 25 : # pragma once 26 : #endif 27 : 28 : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 29 : 30 : namespace OpenDDS { 31 : namespace RTPS { 32 : 33 : struct LocalEntity { 34 1 : LocalEntity() 35 1 : : topic_id_(DCPS::GUID_UNKNOWN) 36 1 : , participant_discovered_at_(DCPS::monotonic_time_zero()) 37 1 : , transport_context_(0) 38 1 : , sequence_(DCPS::SequenceNumber::SEQUENCENUMBER_UNKNOWN()) 39 : #ifdef OPENDDS_SECURITY 40 3 : , have_ice_agent_info(false) 41 : { 42 1 : security_attribs_.base.is_read_protected = false; 43 1 : security_attribs_.base.is_write_protected = false; 44 1 : security_attribs_.base.is_discovery_protected = false; 45 1 : security_attribs_.base.is_liveliness_protected = false; 46 1 : security_attribs_.is_submessage_protected = false; 47 1 : security_attribs_.is_payload_protected = false; 48 1 : security_attribs_.is_key_protected = false; 49 1 : security_attribs_.plugin_endpoint_attributes = 0; 50 1 : } 51 : #else 52 : {} 53 : #endif 54 : 55 : DCPS::GUID_t topic_id_; 56 : DCPS::TransportLocatorSeq trans_info_; 57 : DCPS::MonotonicTime_t participant_discovered_at_; 58 : ACE_CDR::ULong transport_context_; 59 : DCPS::RepoIdSet matched_endpoints_; 60 : // This is the sequence number assigned to this "sample" for durable replay. 61 : DCPS::SequenceNumber sequence_; 62 : DCPS::RepoIdSet remote_expectant_opendds_associations_; 63 : XTypes::TypeInformation type_info_; 64 : #ifdef OPENDDS_SECURITY 65 : bool have_ice_agent_info; 66 : ICE::AgentInfo ice_agent_info; 67 : DDS::Security::EndpointSecurityAttributes security_attribs_; 68 : #endif 69 : }; 70 : 71 : struct LocalPublication : LocalEntity { 72 : DCPS::DataWriterCallbacks_wrch publication_; 73 : DDS::DataWriterQos qos_; 74 : DDS::PublisherQos publisher_qos_; 75 : }; 76 : 77 : struct LocalSubscription : LocalEntity { 78 : DCPS::DataReaderCallbacks_wrch subscription_; 79 : DDS::DataReaderQos qos_; 80 : DDS::SubscriberQos subscriber_qos_; 81 : DCPS::ContentFilterProperty_t filterProperties; 82 : }; 83 : 84 : } 85 : } 86 : 87 : OPENDDS_END_VERSIONED_NAMESPACE_DECL 88 : 89 : #endif // OPENDDS_DCPS_RTPS_LOCAL_ENTITIES_H