6 #ifndef OPENDDS_DCPS_RTPS_SEDP_H 7 #define OPENDDS_DCPS_RTPS_SEDP_H 14 #include "TypeLookupTypeSupportImpl.h" 15 #ifdef OPENDDS_SECURITY 18 #include "RtpsRpcTypeSupportImpl.h" 19 #include "RtpsCoreTypeSupportImpl.h" 20 #ifdef OPENDDS_SECURITY 21 # include "RtpsSecurityC.h" 51 #include <dds/DdsDcpsInfrastructureC.h> 52 #include <dds/DdsDcpsInfoUtilsC.h> 53 #include <dds/DdsDcpsCoreTypeSupportImpl.h> 54 #ifdef OPENDDS_SECURITY 55 # include <dds/DdsSecurityCoreC.h> 61 #ifndef ACE_LACKS_PRAGMA_ONCE 71 using DCPS::AtomicBool;
91 #ifdef OPENDDS_SECURITY 110 #ifdef OPENDDS_SECURITY
118 bool local_tokens_sent)
const;
122 #ifdef OPENDDS_SECURITY 141 #ifdef OPENDDS_SECURITY 182 bool is_discovery_protected,
bool send_get_types,
185 #ifdef OPENDDS_SECURITY 211 return ignored_topics_.count(topic_name);
215 GUID_t& topicId,
const char* topicName,
220 const char* topicName,
222 DDS::TopicQos_out qos,
246 const char* filterClassName,
247 const char* filterExpr,
256 #ifdef OPENDDS_SECURITY 281 #ifdef OPENDDS_SECURITY 287 const GUID_t& remote)
const;
309 DCPS::TopicDetailsMap::iterator top_it =
topics_.find(topic_name);
314 #ifdef OPENDDS_SECURITY 349 , shutting_down_(false)
350 #ifdef OPENDDS_SECURITY
382 #ifdef OPENDDS_SECURITY 386 participant_crypto_handle_ = p;
387 endpoint_crypto_handle_ = e;
392 return participant_crypto_handle_;
397 return endpoint_crypto_handle_;
416 bool associated_with_counterpart(
const DCPS::GUID_t& remote_part)
const;
417 bool pending_association_with_counterpart(
const DCPS::GUID_t& remote_part)
const;
418 bool associated_with_counterpart_if_not_pending(
const DCPS::GUID_t& remote_part)
const;
426 #ifdef OPENDDS_SECURITY 438 void transport_assoc_done(
int flags,
const DCPS::GUID_t& remote);
445 void data_acked(
const GUID_t& remote);
451 bool dropped_by_transport);
472 void send_deferred_samples(
const GUID_t& reader);
476 PerReaderDeferredSamples;
484 bool historic =
false);
492 bool historic_sample =
false,
511 :
Writer(pub_id, sedp, seq_init)
516 #ifdef OPENDDS_SECURITY 533 :
Writer(pub_id, sedp, seq_init)
548 :
Writer(pub_id, sedp, seq_init)
553 #ifdef OPENDDS_SECURITY 566 :
Writer(pub_id, sedp, seq_init)
589 :
Writer(pub_id, sedp, seq_init)
594 bool send_type_lookup_reply(
697 instance_name_ = get_instance_name(sub_id);
733 void get_continuation_point(
const GUID_t& guid,
745 bool process_type_lookup_reply(
748 bool process_get_dependencies_reply(
790 #ifdef OPENDDS_SECURITY
792 bool have_ice_agent_info,
801 #ifdef OPENDDS_SECURITY 810 #ifdef OPENDDS_SECURITY
812 bool have_ice_agent_info,
821 #ifdef OPENDDS_SECURITY 834 #ifdef OPENDDS_SECURITY 852 template<
typename Map>
869 DiscoveredSubscriptionIter& iter,
873 DiscoveredPublicationIter& iter,
883 #ifdef OPENDDS_SECURITY 894 #ifdef OPENDDS_SECURITY 912 #ifdef OPENDDS_SECURITY 925 #ifdef OPENDDS_SECURITY 934 #ifdef OPENDDS_SECURITY 976 void update_agent_info(
const DCPS::GUID_t& a_local_guid,
978 void remove_agent_info(
const DCPS::GUID_t& a_local_guid);
985 void update_agent_info(
const DCPS::GUID_t& a_local_guid,
987 void remove_agent_info(
const DCPS::GUID_t& a_local_guid);
1044 ACE_TEXT(
"(%P|%t) ERROR: Sedp::assign_topic_key: ")
1045 ACE_TEXT(
"Exceeded Maximum number of topic entity keys!")
1046 ACE_TEXT(
"Next key will be a duplicate!\n")));
1052 bool remove =
false);
1058 : got_minimal(false), got_complete(false)
1088 : GuidPair(reader_is_local ? reader : writer, reader_is_local ? writer : reader)
1089 , local_is_reader(reader_is_local)
1090 , type_obj_req_cond(0)
1096 , local_is_reader(!remote_is_reader)
1097 , type_obj_req_cond(type_obj_req_cond)
1103 return local_is_reader ? local : remote;
1108 return local_is_reader ? remote : local;
1113 const int pair_cmp = cmp(other);
1114 return pair_cmp < 0 || (pair_cmp == 0 && type_obj_req_cond < other.
type_obj_req_cond);
1127 bool& need_complete)
const;
1134 const MatchingPair& mp,
bool is_discovery_protected,
bool get_minimal,
bool get_complete);
1138 bool is_discovery_protected);
1139 #ifdef OPENDDS_SECURITY 1141 const GUID_t& writer,
const GUID_t& reader,
bool call_writer,
bool call_reader);
1169 DCPS::TopicDetailsMap::const_iterator td =
topics_.find(tn->second);
1170 if (td ==
topics_.end())
return false;
1172 return td->second.has_dcps_key();
1175 #ifdef OPENDDS_SECURITY 1252 #ifdef OPENDDS_SECURITY 1267 DatareaderCryptoTokenSeqMap;
1270 DatawriterCryptoTokenSeqMap;
1277 #ifdef OPENDDS_SECURITY 1281 #ifdef OPENDDS_SECURITY 1285 #ifdef OPENDDS_SECURITY 1294 #ifdef OPENDDS_SECURITY 1299 #ifdef OPENDDS_SECURITY 1303 #ifdef OPENDDS_SECURITY 1307 #ifdef OPENDDS_SECURITY 1315 #ifdef OPENDDS_SECURITY 1320 #ifdef OPENDDS_SECURITY 1342 virtual void handle_event();
1354 virtual void handle_event();
1366 virtual void handle_event();
1378 virtual void handle_event();
1393 #endif // OPENDDS_RTPS_SEDP_H void notify_publication_disconnected(const DCPS::ReaderIdSeq &)
void remove_from_bit(const DiscoveredSubscription &sub)
DiscoveryWriter_rch dcps_participant_secure_writer_
TimeDuration max_type_lookup_service_reply_period_
DCPS::GUID_t get_guid() const
DDS::ReturnCode_t write_stateless_message(const DDS::Security::ParticipantStatelessMessage &msg, const DCPS::GUID_t &reader)
const WriterAssociationRecord_rch record_
DiscoveryReader_rch subscriptions_secure_reader_
DDS::Security::ParticipantSecurityAttributes participant_sec_attr_
RcHandle< T > rchandle_from(T *pointer)
RcHandle< DCPS::TransportInst > transport_inst() const
LivelinessWriter(const DCPS::GUID_t &pub_id, Sedp &sedp, ACE_INT64 seq_init=1)
bool send_type_lookup_request(const XTypes::TypeIdentifierSeq &type_ids, const DCPS::GUID_t &reader, bool is_discovery_protected, bool send_get_types, const SequenceNumber &seq_num)
DDS::ReturnCode_t write_dcps_participant_dispose(const DCPS::GUID_t &part)
DDS::ReturnCode_t write_participant_message_data(const DCPS::GUID_t &rid, DCPS::SequenceNumber &sn, const DCPS::GUID_t &reader=GUID_UNKNOWN)
DiscoveryWriter_rch publications_secure_writer_
DCPS::RcHandle< TypeLookupReplyReader > TypeLookupReplyReader_rch
void create_datareader_crypto_tokens(const DDS::Security::DatareaderCryptoHandle &drch, const DDS::Security::DatawriterCryptoHandle &dwch, DDS::Security::DatareaderCryptoTokenSeq &drcts)
DDS::Security::PermissionsHandle get_permissions_handle() const
DCPS::RcHandle< DiscoveryWriter > DiscoveryWriter_rch
const InstanceHandle_t HANDLE_NIL
virtual bool deferrable() const
void populate_discovered_reader_msg(DCPS::DiscoveredReaderData &drd, const DCPS::GUID_t &subscription_id, const LocalSubscription &sub)
Base class to hold configuration settings for TransportImpls.
OPENDDS_SET(String) ignored_topics_
bool got_complete
Whether all complete types are obtained.
const GUID_t & reader() const
DCPS::TransportMessageBlockAllocator mb_alloc_
DCPS::TransportConfig_rch transport_cfg_
void cleanup_secure_reader(const GUID_t &subscriptionId)
const DCPS::SequenceNumber & get_seq() const
DDS::ReturnCode_t write_volatile_message(DDS::Security::ParticipantVolatileMessageSecure &msg, const DCPS::GUID_t &reader)
DDS::ReturnCode_t write_publication_data_unsecure(const DCPS::GUID_t &rid, LocalPublication &pub, const DCPS::GUID_t &reader=GUID_UNKNOWN)
bool locators_changed(const ParticipantProxy_t &x, const ParticipantProxy_t &y)
DiscoveredSubscriptionMap discovered_subscriptions_
static DDS::BuiltinTopicKey_t get_key(const DiscoveredPublication &pub)
const DCPS::NetworkAddress & multicast_group() const
TypeLookupReplyWriter_rch type_lookup_reply_writer_
void set_handle_registry(const Security::HandleRegistry_rch &hr)
bool ready(const DiscoveredParticipant &participant, const GUID_t &local_id, const GUID_t &remote_id, bool local_tokens_sent) const
bool remote_has_local_endpoint_token_i(const GUID_t &local, bool local_tokens_sent, const GUID_t &remote) const
LocalSubscriptionMap local_subscriptions_
virtual bool is_expectant_opendds(const GUID_t &endpoint) const
DCPS::TransportInst_rch transport_inst_
const GUID_t GUID_UNKNOWN
Nil value for GUID.
void rtps_relay_only_now(bool f)
DiscoveredSubscriptionMap::iterator DiscoveredSubscriptionIter
DDS::ReturnCode_t add_publication_i(const DCPS::GUID_t &rid, LocalPublication &pub)
CORBA::Long get_priority_value(const DCPS::AssociationData &) const
String to_dds_string(unsigned short to_convert)
DiscoveryReader_rch publications_secure_reader_
DDS::Security::ParticipantCryptoHandle participant_crypto_handle_
SecurityReader(const DCPS::GUID_t &sub_id, Sedp &sedp)
TypeLookupRequestWriter_rch type_lookup_request_secure_writer_
void generate_remote_matched_crypto_handles(DiscoveredParticipant &participant)
void received_stateless_message(DCPS::MessageId message_id, const DDS::Security::ParticipantStatelessMessage &data)
SequenceNumber rpc_seqnum_complete
void process_association_records_i(DiscoveredParticipant &participant)
DDS::ReturnCode_t init(const DCPS::GUID_t &guid, const RtpsDiscovery &disco, DDS::DomainId_t domainId, XTypes::TypeLookupService_rch tls)
MatchingDataMap matching_data_buffer_
DCPS::TopicStatus remove_topic(const GUID_t &topicId)
virtual bool deferrable() const
DDS::Security::ParticipantCryptoHandle crypto_handle_
DCPS::TopicDetailsMap topics_
DCPS::RcHandle< TypeLookupReplyWriter > TypeLookupReplyWriter_rch
void update_publication_locators(const GUID_t &publicationId, const DCPS::TransportLocatorSeq &transInfo)
void notify_publication_lost(const DCPS::ReaderIdSeq &)
sequence< Locator_t > LocatorSeq
DCPS::RcHandle< DiscoveryReader > DiscoveryReader_rch
XTypes::TypeLookupService_rch type_lookup_service_
SubscriptionAgentInfoListener(Sedp &a_sedp)
DependenciesMap dependencies_
DDS::Security::CryptoKeyExchange_var crypto_key_exchange_
void received_participant_message_data_secure(DCPS::MessageId message_id, const ParticipantMessageData &data)
bool should_drop_stateless_message(const DDS::Security::ParticipantGenericMessage &msg)
DCPS::SequenceNumber type_lookup_service_sequence_number_
DiscoveryReader_rch subscriptions_reader_
key GuidPrefix_t guidPrefix
PublicationAgentInfoListener(Sedp &a_sedp)
sequence< TransportLocator > TransportLocatorSeq
void match_endpoints(GUID_t repoId, const DCPS::TopicDetails &td, bool remove=false)
DDS::Security::CryptoKeyFactory_var get_crypto_key_factory() const
std::pair< XTypes::OctetSeq32, XTypes::TypeIdentifierSeq > ContinuationPair
void remove_from_bit_i(const DiscoveredPublication &pub)
Security::HandleRegistry_rch get_handle_registry() const
typedef OPENDDS_MAP(SequenceNumber, TypeIdOrigSeqNumber) OrigSeqNumberMap
void set_access_control(DDS::Security::AccessControl_var acl)
void disassociate(const GUID_t &peerId)
DDS::ReturnCode_t write_publication_data_secure(const DCPS::GUID_t &rid, LocalPublication &pub, const DCPS::GUID_t &reader=GUID_UNKNOWN)
DDS::PublicationBuiltinTopicData ddsPublicationData
void retrieve_inline_qos_data(InlineQosData &) const
void remove_assoc(const GUID_t &remove_from, const GUID_t &removing)
bool remote_is_authenticated_i(const GUID_t &local, const GUID_t &remote, const DiscoveredParticipant &participant) const
DDS::SubscriptionBuiltinTopicData ddsSubscriptionData
Security::HandleRegistry_rch handle_registry_
Sedp(const DCPS::GUID_t &participant_id, Spdp &owner, ACE_Thread_Mutex &lock)
void write_durable_dcps_participant_secure(const DCPS::GUID_t &reader)
DCPS::DiscoveredWriterData writer_data_
void cleanup_volatile_crypto(const DCPS::GUID_t &remote)
DCPS::JobQueue_rch job_queue_
ReaderAddAssociation(const ReaderAssociationRecord_rch &record)
DDS::ReturnCode_t add_subscription_i(const DCPS::GUID_t &rid, LocalSubscription &sub)
DCPS::RcHandle< SecurityWriter > SecurityWriter_rch
unsigned int subscription_counter_
DCPS::EventDispatcher_rch event_dispatcher_
MessageId
One byte message id (<256)
virtual void assign_topic_key(GUID_t &guid)
LocalSubscriptionMap::const_iterator LocalSubscriptionCIter
SequenceNumber seq_number
TypeLookupReplyReader_rch type_lookup_reply_reader_
OrigSeqNumberMap orig_seq_numbers_
void populate_origination_locator(const GUID_t &id, DCPS::TransportLocator &tl)
RcHandle< EndpointManagerSporadic > type_lookup_reply_deadline_processor_
virtual void assign_subscription_key(GUID_t &rid, const GUID_t &topicId, const DDS::DataReaderQos &)
const octet ENTITYKIND_USER_READER_WITH_KEY
DDS::Security::DatawriterCryptoHandle generate_remote_matched_writer_crypto_handle(const DCPS::GUID_t &writer, const DCPS::GUID_t &reader)
sequence< GUID_t > ReaderIdSeq
void stop_ice(const DCPS::GUID_t &guid, const DiscoveredPublication &dpub)
SecurityWriter(const DCPS::GUID_t &pub_id, Sedp &sedp, ACE_INT64 seq_init=1)
const GUID_t & writer() const
void remove_publication(const GUID_t &publicationId)
RcHandle< PublicationAgentInfoListener > publication_agent_info_listener_
void write_durable_publication_data(const DCPS::GUID_t &reader, bool secure)
DCPS::RcHandle< LivelinessWriter > LivelinessWriter_rch
DOMAINID_TYPE_NATIVE DomainId_t
const WriterAssociationRecord_rch record_
XTypes::TypeIdentifier type_id
const EntityId_t ENTITYID_PARTICIPANT
NativeCryptoHandle DatawriterCryptoHandle
void associate(DiscoveredParticipant &participant, const DDS::Security::ParticipantSecurityAttributes &participant_sec_attr)
LocalSubscriptionMap::iterator LocalSubscriptionIter
MonotonicTimePoint time_added_to_map
MatchingPair(const GUID_t &reader, const GUID_t writer, bool reader_is_local)
void send_datareader_crypto_tokens(const DCPS::GUID_t &local_reader, const DCPS::GUID_t &remote_writer, const DDS::Security::DatareaderCryptoTokenSeq &drcts)
TypeLookupReplyWriter_rch type_lookup_reply_secure_writer_
String to_hex_dds_string(const unsigned char *data, const size_t size, const char delim, const size_t delim_every)
SequenceNumber participant_secure_sequence_
bool remote_has_local_participant_token_i(const GUID_t &local, const GUID_t &remote, const DiscoveredParticipant &participant) const
bool remote_knows_about_local_i(const GUID_t &local, const GUID_t &remote) const
DDS::Security::AccessControl_var access_control_
MatchingDataMap::iterator MatchingDataIter
CryptoTokenSeq DatareaderCryptoTokenSeq
TypeLookupReplyReader_rch type_lookup_reply_secure_reader_
OPENDDS_SET_CMP(GUID_t, GUID_tKeyLessThan) relay_only_readers_
Class to serialize and deserialize data for DDS.
const octet ENTITYKIND_OPENDDS_TOPIC
bool is_security_enabled()
DDS::ReturnCode_t write_subscription_data(const DCPS::GUID_t &rid, LocalSubscription &sub, const DCPS::GUID_t &reader=GUID_UNKNOWN)
DDS::ReturnCode_t write_subscription_data_secure(const DCPS::GUID_t &rid, LocalSubscription &sub, const DCPS::GUID_t &reader=GUID_UNKNOWN)
const ParameterId_t PID_ENDPOINT_GUID
void set_permissions_handle(DDS::Security::PermissionsHandle h)
const ReaderAssociationRecord_rch record_
bool handle_datareader_crypto_tokens(const DDS::Security::ParticipantVolatileMessageSecure &msg)
DCPS::WeakRcHandle< ICE::Endpoint > get_ice_endpoint()
DCPS::TopicStatus find_topic(const char *topicName, CORBA::String_out dataTypeName, DDS::TopicQos_out qos, GUID_t &topicId)
bool update_subscription_params(const DCPS::GUID_t &subId, const DDS::StringSeq ¶ms)
ReaderRemoveAssociations(const ReaderAssociationRecord_rch &record)
LivelinessReader_rch participant_message_secure_reader_
sequence< TransportStatistics > TransportStatisticsSequence
Holds a data sample received by the transport.
DeferredSamples deferred_samples_
long ParticipantCryptoHandle
void match_continue(const GUID_t &writer, const GUID_t &reader)
DCPS::RcHandle< LivelinessReader > LivelinessReader_rch
DDS::Security::AccessControl_var get_access_control() const
void cleanup_reader_association(DCPS::DataReaderCallbacks_wrch callbacks, const GUID_t &reader, const GUID_t &writer)
key EntityKey_t entityKey
NativeCryptoHandle DatareaderCryptoHandle
DiscoveryWriter(const DCPS::GUID_t &pub_id, Sedp &sedp, ACE_INT64 seq_init=1)
OPENDDS_STRING get_instance_name(const DCPS::GUID_t &id) const
void associate_volatile(DiscoveredParticipant &participant)
DDS::Security::NativeCryptoHandle get_endpoint_crypto_handle() const
DDS::Security::DatareaderCryptoHandle generate_remote_matched_reader_crypto_handle(const DCPS::GUID_t &reader, const DCPS::GUID_t &writer, bool relay_only)
LivelinessWriter_rch participant_message_writer_
OPENDDS_STRING instance_name_
Endpoint(const DCPS::GUID_t &repo_id, Sedp &sedp)
LivelinessReader(const DCPS::GUID_t &sub_id, Sedp &sedp)
typedef OPENDDS_MAP_CMP(GUID_t, DiscoveredSubscription, GUID_tKeyLessThan) DiscoveredSubscriptionMap
void notify_publication_reconnected(const DCPS::ReaderIdSeq &)
TypeLookupReplyReader(const DCPS::GUID_t &sub_id, Sedp &sedp)
LocalPublicationMap::const_iterator LocalPublicationCIter
void notify_subscription_disconnected(const DCPS::WriterIdSeq &)
void disassociate(DiscoveredParticipant &participant)
DDS::Security::CryptoKeyExchange_var get_crypto_key_exchange() const
void update_subscription_locators(const GUID_t &subscriptionId, const DCPS::TransportLocatorSeq &transInfo)
virtual DDS::ReturnCode_t remove_publication_i(const DCPS::GUID_t &publicationId, LocalPublication &pub)
SecurityReader_rch participant_volatile_message_secure_reader_
TimePoint_T< MonotonicClock > MonotonicTimePoint
GUID_t add_publication(const GUID_t &topicId, DCPS::DataWriterCallbacks_rch publication, const DDS::DataWriterQos &qos, const DCPS::TransportLocatorSeq &transInfo, const DDS::PublisherQos &publisherQos, const XTypes::TypeInformation &type_info)
void process_discovered_reader_data(DCPS::MessageId message_id, const DCPS::DiscoveredReaderData &rdata, const DCPS::GUID_t &guid, const XTypes::TypeInformation &type_info, bool have_ice_agent_info, const ICE::AgentInfo &ice_agent_info, const DDS::Security::EndpointSecurityInfo *security_info=NULL)
SecurityReader_rch participant_stateless_message_reader_
DCPS::SequenceNumber local_participant_manual_liveliness_sn_secure_
sequence< GUID_t > WriterIdSeq
bool local_has_remote_endpoint_token_i(const GUID_t &local, const GUID_t &remote) const
DDS::DomainId_t domain_id() const
GUID_t add_subscription(const GUID_t &topicId, DCPS::DataReaderCallbacks_rch subscription, const DDS::DataReaderQos &qos, const DCPS::TransportLocatorSeq &transInfo, const DDS::SubscriberQos &subscriberQos, const char *filterClassName, const char *filterExpr, const DDS::StringSeq ¶ms, const XTypes::TypeInformation &type_info)
const bool use_xtypes_complete_
void remove_associations(const DCPS::ReaderIdSeq &, bool)
DCPS::DiscoveredReaderData reader_data_
void signal_liveliness_unsecure(DDS::LivelinessQosPolicyKind kind)
void write_durable_participant_message_data_secure(const DCPS::GUID_t &reader)
unsigned int publication_counter_
void association_complete_i(const DCPS::GUID_t &localId, const DCPS::GUID_t &remoteId)
const octet ENTITYKIND_USER_WRITER_NO_KEY
DCPS::SequenceNumber local_participant_automatic_liveliness_sn_secure_
bool need_minimal_and_or_complete_types(const XTypes::TypeInformation *type_info, bool &need_minimal, bool &need_complete) const
void request_remote_complete_type_objects(const GUID_t &remote_entity, const XTypes::TypeInformation &remote_type_info, DCPS::TypeObjReqCond &cond)
void use_rtps_relay_now(bool f)
DDS::Security::NativeCryptoHandle endpoint_crypto_handle_
void remove_expired_endpoints(const MonotonicTimePoint &)
DiscoveryReader(const DCPS::GUID_t &sub_id, Sedp &sedp)
DiscoveryWriter_rch subscriptions_writer_
LivelinessReader_rch participant_message_reader_
TypeLookupRequestReader(const DCPS::GUID_t &sub_id, Sedp &sedp)
AtomicBool shutting_down_
void match(const GUID_t &writer, const GUID_t &reader)
DCPS::SequenceNumber local_participant_automatic_liveliness_sn_
Reader(const DCPS::GUID_t &sub_id, Sedp &sedp)
void purge_dead_topic(const String &topic_name)
DCPS::RepoIdSet associated_participants_
static void set_inline_qos(DCPS::TransportLocatorSeq &locators)
TypeLookupRequestReader_rch type_lookup_request_secure_reader_
void get_remote_type_objects(const XTypes::TypeIdentifierWithDependencies &tid_with_deps, MatchingData &md, bool get_minimal, const GUID_t &remote_id, bool is_discovery_protected)
void data_acked_i(const DCPS::GUID_t &local_id, const DCPS::GUID_t &remote_id)
void notify_subscription_lost(const DCPS::WriterIdSeq &)
DiscoveryReader_rch dcps_participant_secure_reader_
Mix-in class for DDS entities which directly use the transport layer.
sequence< Parameter > ParameterList
void create_and_send_datareader_crypto_tokens(const DDS::Security::DatareaderCryptoHandle &drch, const DCPS::GUID_t &local_reader, const DDS::Security::DatawriterCryptoHandle &dwch, const DCPS::GUID_t &remote_writer)
DDS::ReturnCode_t write_subscription_data_unsecure(const DCPS::GUID_t &rid, LocalSubscription &sub, const DCPS::GUID_t &reader=GUID_UNKNOWN)
DCPS::RcHandle< TypeLookupRequestReader > TypeLookupRequestReader_rch
DatareaderCryptoTokenSeqMap pending_remote_reader_crypto_tokens_
bool got_minimal
Whether all minimal types are obtained.
void set_crypto_key_exchange(DDS::Security::CryptoKeyExchange_var ckf)
void assign_bit_key(DiscoveredPublication &pub)
LivelinessWriter_rch participant_message_secure_writer_
WriterRemoveAssociations(const WriterAssociationRecord_rch &record)
DCPS::JobQueue_rch job_queue() const
void populate_discovered_writer_msg(DCPS::DiscoveredWriterData &dwd, const DCPS::GUID_t &publication_id, const LocalPublication &pub)
void remove_assoc_i(const DCPS::GUID_t &local_guid, const LocalPublication &lpub, const DCPS::GUID_t &remote_guid)
bool check_transport_qos(const DCPS::TransportInst &)
TypeLookupRequestWriter_rch type_lookup_request_writer_
bool should_drop_volatile_message(const DDS::Security::ParticipantGenericMessage &msg)
#define OPENDDS_VECTOR(T)
DiscoveryWriter_rch subscriptions_secure_writer_
virtual void assign_publication_key(GUID_t &rid, const GUID_t &topicId, const DDS::DataWriterQos &)
bool local_has_remote_participant_token_i(const GUID_t &local, const GUID_t &remote) const
void write_durable_participant_message_data(const DCPS::GUID_t &reader)
const octet ENTITYKIND_USER_WRITER_WITH_KEY
sequence< octet, 32 > OctetSeq32
void replay_durable_data_for(const DCPS::GUID_t &remote_sub_id)
TypeLookupReplyWriter(const DCPS::GUID_t &pub_id, Sedp &sedp, ACE_INT64 seq_init=1)
void send_datawriter_crypto_tokens(const DCPS::GUID_t &local_writer, const DCPS::GUID_t &remote_reader, const DDS::Security::DatawriterCryptoTokenSeq &dwcts)
SecurityWriter_rch participant_volatile_message_secure_writer_
void append_transport_statistics(DCPS::TransportStatisticsSequence &seq)
void remove_from_bit(const DiscoveredPublication &pub)
MonotonicTimePoint time_started
Sequence number abstraction. Only allows positive 64 bit values.
void ignore(const GUID_t &to_ignore)
DCPS::RcHandle< TypeLookupRequestWriter > TypeLookupRequestWriter_rch
void request_type_objects(const XTypes::TypeInformation *type_info, const MatchingPair &mp, bool is_discovery_protected, bool get_minimal, bool get_complete)
void write_durable_subscription_data(const DCPS::GUID_t &reader, bool secure)
void notify_liveliness(const ParticipantMessageData &pmd)
DiscoveredPublicationMap discovered_publications_
DCPS::RcHandle< ICE::Agent > ice_agent_
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
RcHandle< SubscriptionAgentInfoListener > subscription_agent_info_listener_
unsigned int topic_counter_
void generate_remote_matched_crypto_handle(const BuiltinAssociationRecord &record)
DCPS::TopicStatus assert_topic(GUID_t &topicId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos, bool hasDcpsKey, DCPS::TopicCallbacks *topic_callbacks)
bool ignoring(const GUID_t &guid) const
bool has_dcps_key(const GUID_t &topicId) const
const ReaderAssociationRecord_rch record_
bool should_drop_message(const char *unsecure_topic_name)
void send_builtin_crypto_tokens(const DCPS::GUID_t &remoteId)
DCPS::ReactorTask_rch reactor_task() const
void type_lookup_init(DCPS::ReactorInterceptor_rch reactor_interceptor)
DDS::DomainId_t get_domain_id() const
void disassociate_volatile(DiscoveredParticipant &participant)
void remove_entities_belonging_to(Map &m, DCPS::GUID_t participant, bool subscription, OPENDDS_VECTOR(typename Map::mapped_type)&to_remove_from_bit)
DiscoveryReader_rch publications_reader_
void process_discovered_writer_data(DCPS::MessageId message_id, const DCPS::DiscoveredWriterData &wdata, const DCPS::GUID_t &guid, const XTypes::TypeInformation &type_info, bool have_ice_agent_info, const ICE::AgentInfo &ice_agent_info, const DDS::Security::EndpointSecurityInfo *security_info=NULL)
bool update_subscription_qos(const DCPS::GUID_t &subscriptionId, const DDS::DataReaderQos &qos, const DDS::SubscriberQos &subscriberQos)
bool ignoring(const char *topic_name) const
DDS::Security::PermissionsHandle permissions_handle_
const DCPS::NetworkAddress & local_address() const
void stun_server_address(const ACE_INET_Addr &address)
LocalPublicationMap local_publications_
void assign(EntityId_t &dest, const EntityId_t &src)
DCPS::LocatorSeq multicast_locators() const
TopicNameMap topic_names_
SequenceNumber rpc_seqnum_minimal
Sequence number of the first request for remote minimal types.
void enable_transport_using_config(bool reliable, bool durable, const TransportConfig_rch &tc)
DDS::ReturnCode_t write_publication_data(const DCPS::GUID_t &rid, LocalPublication &pub, const DCPS::GUID_t &reader=GUID_UNKNOWN)
DatawriterCryptoTokenSeqMap pending_remote_writer_crypto_tokens_
DCPS::RcHandle< Reader > Reader_rch
GUID_t make_id(const GuidPrefix_t &prefix, const EntityId_t &entity)
TypeLookupRequestReader_rch type_lookup_request_reader_
void set_crypto_handles(DDS::Security::ParticipantCryptoHandle p, DDS::Security::NativeCryptoHandle e=DDS::HANDLE_NIL)
void signal_liveliness(DDS::LivelinessQosPolicyKind kind)
virtual void populate_transport_locator_sequence(DCPS::TransportLocatorSeq &tls, DiscoveredSubscriptionIter &iter, const DCPS::GUID_t &reader)
WriterAddAssociation(const WriterAssociationRecord_rch &record)
DCPS::ReactorTask_rch reactor_task_
virtual bool shutting_down() const
const octet ENTITYKIND_USER_READER_NO_KEY
DCPS::RcHandle< SecurityReader > SecurityReader_rch
virtual DDS::ReturnCode_t remove_subscription_i(const DCPS::GUID_t &subscriptionId, LocalSubscription &sub)
void signal_liveliness_secure(DDS::LivelinessQosPolicyKind kind)
bool operator<(const MatchingPair &other) const
void resend_user_crypto_tokens(const DCPS::GUID_t &remote_participant)
Defines the interface for Discovery callbacks into the Topic.
#define TheServiceParticipant
void match_continue_security_enabled(const GUID_t &writer, const GUID_t &reader, bool call_writer, bool call_reader)
void data_received(DCPS::MessageId message_id, const DiscoveredPublication &wdata)
void update_locators(const ParticipantData_t &pdata)
DCPS::PmfSporadicTask< Sedp > EndpointManagerSporadic
void create_datawriter_crypto_tokens(const DDS::Security::DatawriterCryptoHandle &dwch, const DDS::Security::DatareaderCryptoHandle &drch, DDS::Security::DatawriterCryptoTokenSeq &dwcts)
bool update_publication_qos(const DCPS::GUID_t &publicationId, const DDS::DataWriterQos &qos, const DDS::PublisherQos &publisherQos)
The Internal API and Implementation of OpenDDS.
SecurityWriter_rch participant_stateless_message_writer_
void create_and_send_datawriter_crypto_tokens(const DDS::Security::DatawriterCryptoHandle &dwch, const DCPS::GUID_t &local_writer, const DDS::Security::DatareaderCryptoHandle &drch, const DCPS::GUID_t &remote_reader)
CryptoTokenSeq DatawriterCryptoTokenSeq
TypeLookupRequestWriter(const DCPS::GUID_t &pub_id, Sedp &sedp, ACE_INT64 seq_init=1)
void cleanup_type_lookup_data(const DCPS::GUID_t &guid, const XTypes::TypeIdentifier &ti, bool secure)
DDS::ReturnCode_t write_dcps_participant_secure(const Security::SPDPdiscoveredParticipantData &msg, const DCPS::GUID_t &part)
void cleanup_secure_writer(const GUID_t &publicationId)
DCPS::TypeObjReqCond * type_obj_req_cond
DDS::Security::ParticipantCryptoHandle get_crypto_handle() const
static DDS::BuiltinTopicKey_t get_key(const DiscoveredSubscription &sub)
DCPS::SequenceNumber local_participant_manual_liveliness_sn_
bool handle_datawriter_crypto_tokens(const DDS::Security::ParticipantVolatileMessageSecure &msg)
void notify_subscription_reconnected(const DCPS::WriterIdSeq &)
void add_assoc_i(const DCPS::GUID_t &local_guid, const LocalPublication &lpub, const DCPS::GUID_t &remote_guid, const DiscoveredSubscription &dsub)
void remove_remote_crypto_handle(const DCPS::GUID_t &participant, const EntityId_t &entity)
MatchingPair(const GUID_t &remote, bool remote_is_reader, DCPS::TypeObjReqCond *type_obj_req_cond)
DiscoveredPublicationMap::iterator DiscoveredPublicationIter
bool update_topic_qos(const DCPS::GUID_t &topicId, const DDS::TopicQos &qos)
DDS::ReturnCode_t init_security(DDS::Security::IdentityHandle id_handle, DDS::Security::PermissionsHandle perm_handle, DDS::Security::ParticipantCryptoHandle crypto_handle)
void set_crypto_key_factory(DDS::Security::CryptoKeyFactory_var ckf)
void cleanup_writer_association(DCPS::DataWriterCallbacks_wrch callbacks, const GUID_t &writer, const GUID_t &reader)
sequence< string > StringSeq
extensibility(MUTABLE) struct TypeLookup_getTypes_In
DCPS::SequenceNumber seq_
void start_ice(const DCPS::GUID_t &guid, const LocalPublication &lpub)
Discovery Strategy class that implements RTPS discovery.
DiscoveryWriter_rch publications_writer_
DDS::ReturnCode_t write_participant_message_data_secure(const DCPS::GUID_t &rid, DCPS::SequenceNumber &sn, const DCPS::GUID_t &reader=GUID_UNKNOWN)
DDS::Security::CryptoKeyFactory_var crypto_key_factory_
LocalPublicationMap::iterator LocalPublicationIter
void remove_associations(const DCPS::WriterIdSeq &, bool)
void rtps_relay_address(const ACE_INET_Addr &address)
void received_volatile_message_secure(DCPS::MessageId message_id, const DDS::Security::ParticipantVolatileMessageSecure &data)
void remove_subscription(const GUID_t &subscriptionId)
virtual bool deferrable() const
DCPS::LocatorSeq unicast_locators() const