16 #ifndef OPENDDS_NO_CONTENT_SUBSCRIPTION_PROFILE 17 #include "dds/DdsDcpsGuidTypeSupportImpl.h" 28 #ifndef OPENDDS_NO_CONTENT_SUBSCRIPTION_PROFILE 29 const bool customHeader =
39 if (map_copy.size()) {
41 for (MapType::iterator itr = map_copy.begin(); itr != map_copy.end(); ++itr) {
43 #ifndef OPENDDS_NO_CONTENT_SUBSCRIPTION_PROFILE 45 typedef std::map<DataLinkIdType, GUIDSeq_var>::iterator FilterIter;
49 guids = fi->second.ptr();
53 "(%P|%t) DBG: DataLink %@ filtering %d subscribers.\n",
54 itr->second.in(), guids ? guids->length() : 0), 5);
61 tce->set_msg(
move(mb));
63 itr->second->send(tce);
69 itr->second->send(send_element);
71 #ifndef OPENDDS_NO_CONTENT_SUBSCRIPTION_PROFILE 84 VDBG((
LM_DEBUG,
"(%P|%t) DBG: DataLinkSet::send_control %@.\n", sample));
94 for (MapType::iterator itr = map_copy.begin(); itr != map_copy.end(); ++itr) {
95 itr->second->send(send_element);
111 if (dup_map.empty()) {
116 ACE_TEXT(
"(%P|%t) DataLinkSet::send_control: ")
117 ACE_TEXT(
"no links for publication %C, ")
118 ACE_TEXT(
"not sending control message.\n"),
121 listener->control_delivered(msg);
129 for (MapType::iterator itr = dup_map.begin();
130 itr != dup_map.end();
132 itr->second->send_start();
133 itr->second->send(send_element);
134 itr->second->send_stop(pub_id);
153 if (!send_element)
return;
156 for (MapType::iterator itr =
map_.begin();
159 itr->second->send_start();
160 itr->second->send(send_element);
161 itr->second->send_stop(pub_id);
174 const MapType::iterator end = map_copy.end();
175 for (MapType::iterator itr = map_copy.begin(); itr != end; ++itr) {
193 const MapType::iterator end = map_copy.end();
194 for (MapType::iterator itr = map_copy.begin(); itr != end; ++itr) {
195 itr->second->remove_all_msgs(pub_id);
207 SendStartVec send_start_vec;
212 for (MapType::iterator itr = in->
map_.begin(); itr != in->
map_.end(); ++itr) {
220 send_start_vec.push_back(itr->second);
222 }
else if (result == -1) {
224 "(%P|%t) ERROR: Failed to bind data link into set.\n"));
233 for (SendStartVec::iterator it = send_start_vec.begin(); it != send_start_vec.end(); ++it) {
250 for (MapType::iterator itr = map_copy.begin(); itr != map_copy.end(); ++itr) {
251 itr->second->send_stop(repoId);
265 for (MapType::iterator itr =
map_.begin();
282 for (MapType::iterator itr = map_copy.begin(); itr != map_copy.end(); ++itr) {
283 itr->second->send_final_acks(readerid);
static void add_cfentries(const GUIDSeq *guids, ACE_Message_Block *mb)
TransportSendListener * get_send_listener() const
DataLinkIdTypeGUIDMap & get_filter_per_link()
MapType map_
Hash map for DataLinks.
void send_final_acks(const GUID_t &readerid)
void copy_map_to(MapType &target)
lock and copy map for lock-free access
bool remove_sample(const DataSampleElement *sample)
int bind(Container &c, const FirstType &first, const SecondType &second)
static bool test_flag(DataSampleHeaderFlag flag, const ACE_Message_Block *buffer)
void send(DataSampleElement *sample)
Send to each DataLink in the set.
const char * c_str() const
void send_stop(GUID_t repoId)
virtual const ACE_Message_Block * msg() const
Accessor for the ACE_Message_Block.
T::rv_reference move(T &p)
DataSample * get_sample() const
Christopher Diggins *renamed files *fixing compilation errors *adding Visual C project file *removed make Max Lybbert *removed references to missing and unused header
virtual void data_dropped(const DataSampleElement *sample, bool dropped_by_transport)
virtual ACE_Message_Block * duplicate(void) const
sequence< GUID_t > GUIDSeq
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
#define DBG_ENTRY_LVL(CNAME, MNAME, DBG_LVL)
#define VDBG_LVL(DBG_ARGS, LEVEL)
bool remove_all_msgs(const GUID_t &pub_id)
typedef OPENDDS_VECTOR(ActionConnectionRecord) ConnectionRecords
void send_control(DataSampleElement *sample)
Send a control message that is wrapped in a DataSampleElement.
void send_response(GUID_t sub_id, const DataSampleHeader &header, Message_Block_Ptr response)
void send_start(DataLinkSet *link_set)
SendResponseListener send_response_listener_
Listener for TransportSendControlElements created in send_response.
SendControlStatus
Return code type for send_control() operations.