8 #ifndef UPDATERECEIVER_T_CPP 9 #define UPDATERECEIVER_T_CPP 11 #if !defined (ACE_LACKS_PRAGMA_ONCE) 25 template<
class DataType>
27 : processor_(processor),
29 workAvailable_(this->
lock_)
33 ACE_TEXT(
"(%P|%t) UpdateReceiver::UpdateReceiver()\n")));
40 template<
class DataType>
45 ACE_TEXT(
"(%P|%t) UpdateReceiver::~UpdateReceiver()\n")));
53 template<
class DataType>
59 ACE_TEXT(
"(%P|%t) UpdateReceiver::open()\n")));
66 template<
class DataType>
72 ACE_TEXT(
"(%P|%t) UpdateReceiver::close()\n")));
75 while (this->queue_.size()) {
76 delete this->queue_.front().first;
77 delete this->queue_.front().second;
78 this->queue_.pop_front();
84 template<
class DataType>
90 ACE_TEXT(
"(%P|%t) UpdateReceiver::stop()\n")));
98 this->workAvailable_.signal();
101 template<
class DataType>
107 ACE_TEXT(
"(%P|%t) UpdateReceiver::add()\n")));
119 ACE_TEXT(
"(%P|%t) UpdateReceiver::add() - ")
120 ACE_TEXT(
" %d samples waiting to process in 0x%x.\n"),
126 this->workAvailable_.signal();
129 template<
class DataType>
135 ACE_TEXT(
"(%P|%t) UpdateReceiver::svc()\n")));
139 while (this->stop_ ==
false) {
143 while (this->queue_.size() == 0) {
145 this->workAvailable_.wait();
149 ACE_TEXT(
"(%P|%t) UpdateReceiver::svc() - ")
155 if (this->stop_ ==
true) {
158 ACE_TEXT(
"(%P|%t) UpdateReceiver::svc() - ")
159 ACE_TEXT(
"discontinuing processing after wakeup in 0x%x.\n"),
170 ACE_TEXT(
"(%P|%t) UpdateReceiver::svc() - ")
171 ACE_TEXT(
"processing a sample in 0x%x.\n"),
176 this->processor_.processSample(
177 this->queue_.front().first,
178 this->queue_.front().second);
182 delete this->queue_.front().first;
183 delete this->queue_.front().second;
184 this->queue_.pop_front();
190 ACE_TEXT(
"(%P|%t) UpdateReceiver::svc() - ")
191 ACE_TEXT(
"discontinuing processing after sample complete in 0x%x.\n"),
#define ACE_GUARD(MUTEX, OBJ, LOCK)
Interface for managing update publications.
ACE_Guard< ACE_Thread_Mutex > lock_
ACE_HANDLE open(const char *filename, int mode, mode_t perms=ACE_DEFAULT_OPEN_PERMS, LPSECURITY_ATTRIBUTES sa=0)
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
std::pair< OpenDDS::Federator::OwnerUpdate *, DDS::SampleInfo * > DataInfo
Contents of the queue.
void activate(T &obj_ref, PortableServer::POA_ptr poa, PortableServer::ServantBase *servant, TAO_EC_Object_Deactivator &suggested_object_deactivator)
The Internal API and Implementation of OpenDDS.
UpdateReceiver(UpdateProcessor< DataType > &processor)
Construct with a processor reference.