OpenDDS::DCPS::DcpsUpcalls Struct Reference

#include <DiscoveryBase.h>

Inheritance diagram for OpenDDS::DCPS::DcpsUpcalls:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::DcpsUpcalls:
Collaboration graph
[legend]

List of all members.

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 RepoIdreader_
const DCPS::WriterAssociationwa_
bool active_
DCPS::DataWriterCallbacks *const dwr_
bool reader_done_
bool writer_done_
ACE_Thread_Mutex mtx_
ACE_Condition_Thread_Mutex cnd_

Detailed Description

Definition at line 63 of file DiscoveryBase.h.


Constructor & Destructor Documentation

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       {}


Member Function Documentation

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       }

Here is the call graph for this function:

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       }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

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().


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1