#include <DiscoveryBase.h>
Public Member Functions | |
DcpsUpcalls (DCPS::DataReaderCallbacks *drr, const RepoId &reader, const DCPS::WriterAssociation &wa, bool active, DCPS::DataWriterCallbacks *dwr) | |
int | svc () |
void | writer_done () |
Public Attributes | |
DCPS::DataReaderCallbacks *const | drr_ |
const RepoId & | reader_ |
const DCPS::WriterAssociation & | wa_ |
bool | active_ |
DCPS::DataWriterCallbacks *const | dwr_ |
bool | reader_done_ |
bool | writer_done_ |
ACE_Thread_Mutex | mtx_ |
ACE_Condition_Thread_Mutex | cnd_ |
Definition at line 63 of file DiscoveryBase.h.
OpenDDS::DCPS::DcpsUpcalls::DcpsUpcalls | ( | DCPS::DataReaderCallbacks * | drr, | |
const RepoId & | reader, | |||
const DCPS::WriterAssociation & | wa, | |||
bool | active, | |||
DCPS::DataWriterCallbacks * | dwr | |||
) | [inline] |
Definition at line 64 of file DiscoveryBase.h.
00069 : drr_(drr), reader_(reader), wa_(wa), active_(active), dwr_(dwr) 00070 , reader_done_(false), writer_done_(false), cnd_(mtx_) 00071 {}
int OpenDDS::DCPS::DcpsUpcalls::svc | ( | void | ) | [inline, virtual] |
Reimplemented from ACE_Task_Base.
Definition at line 73 of file DiscoveryBase.h.
References active_, OpenDDS::DCPS::DataReaderCallbacks::add_association(), OpenDDS::DCPS::DataWriterCallbacks::association_complete(), cnd_, drr_, dwr_, mtx_, reader_, reader_done_, ACE_Condition< ACE_Thread_Mutex >::signal(), wa_, ACE_Condition< ACE_Thread_Mutex >::wait(), and writer_done_.
00074 { 00075 drr_->add_association(reader_, wa_, active_); 00076 { 00077 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, mtx_, -1); 00078 reader_done_ = true; 00079 cnd_.signal(); 00080 while (!writer_done_) { 00081 cnd_.wait(); 00082 } 00083 } 00084 dwr_->association_complete(reader_); 00085 return 0; 00086 }
void OpenDDS::DCPS::DcpsUpcalls::writer_done | ( | ) | [inline] |
Definition at line 88 of file DiscoveryBase.h.
References cnd_, mtx_, ACE_Condition< ACE_Thread_Mutex >::signal(), ACE_Task_Base::wait(), and writer_done_.
Referenced by OpenDDS::DCPS::EndpointManager< Security::SPDPdiscoveredParticipantData >::match().
00089 { 00090 { 00091 ACE_GUARD(ACE_Thread_Mutex, g, mtx_); 00092 writer_done_ = true; 00093 cnd_.signal(); 00094 } 00095 wait(); 00096 }
Definition at line 101 of file DiscoveryBase.h.
Referenced by svc().
Definition at line 105 of file DiscoveryBase.h.
Referenced by svc(), and writer_done().
Definition at line 98 of file DiscoveryBase.h.
Referenced by svc().
Definition at line 102 of file DiscoveryBase.h.
Referenced by svc().
Definition at line 104 of file DiscoveryBase.h.
Referenced by svc(), and writer_done().
Definition at line 99 of file DiscoveryBase.h.
Referenced by svc().
Definition at line 103 of file DiscoveryBase.h.
Referenced by svc().
Definition at line 100 of file DiscoveryBase.h.
Referenced by svc().
Definition at line 103 of file DiscoveryBase.h.
Referenced by svc(), and writer_done().