OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner Struct Reference

Inheritance diagram for OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner:

Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 OrbRunner ()
int svc ()
void shutdown ()

Public Attributes

CORBA::ORB_var orb_
ACE_Atomic_Op< ACE_Thread_Mutex,
unsigned long > 
use_count_

Private Member Functions

 OrbRunner (const OrbRunner &)
OrbRunneroperator= (const OrbRunner &)

Detailed Description

Definition at line 239 of file InfoRepoDiscovery.h.


Constructor & Destructor Documentation

OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::OrbRunner (  )  [inline]

Definition at line 240 of file InfoRepoDiscovery.h.

00240 {}

OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::OrbRunner ( const OrbRunner  )  [private]


Member Function Documentation

OrbRunner& OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::operator= ( const OrbRunner  )  [private]

void OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::shutdown (  ) 

Definition at line 901 of file InfoRepoDiscovery.cpp.

References orb_.

Referenced by OpenDDS::DCPS::InfoRepoDiscovery::~InfoRepoDiscovery().

00902 {
00903   orb_->shutdown();
00904   wait();
00905 }

int OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::svc (  ) 

Definition at line 911 of file InfoRepoDiscovery.cpp.

References orb_.

00912 {
00913   // this method was originally Service_Participant::svc()
00914   bool done = false;
00915 
00916   // Ignore all signals to avoid
00917   //     ERROR: <something descriptive> Interrupted system call
00918   // The main thread will handle signals.
00919   sigset_t set;
00920   ACE_OS::sigfillset(&set);
00921   ACE_OS::thr_sigsetmask(SIG_SETMASK, &set, NULL);
00922 
00923   while (!done) {
00924     try {
00925       if (orb_->orb_core()->has_shutdown() == false) {
00926         orb_->run();
00927       }
00928 
00929       done = true;
00930 
00931     } catch (const CORBA::SystemException& sysex) {
00932       sysex._tao_print_exception(
00933         "ERROR: InfoRepoDiscovery::OrbRunner");
00934 
00935     } catch (const CORBA::UserException& userex) {
00936       userex._tao_print_exception(
00937         "ERROR: InfoRepoDiscovery::OrbRunner");
00938 
00939     } catch (const CORBA::Exception& ex) {
00940       ex._tao_print_exception(
00941         "ERROR: InfoRepoDiscovery::OrbRunner");
00942     }
00943 
00944     if (orb_->orb_core()->has_shutdown()) {
00945       done = true;
00946 
00947     } else {
00948       orb_->orb_core()->reactor()->reset_reactor_event_loop();
00949     }
00950   }
00951 
00952   return 0;
00953 }


Member Data Documentation

CORBA::ORB_var OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::orb_

Definition at line 244 of file InfoRepoDiscovery.h.

Referenced by OpenDDS::DCPS::InfoRepoDiscovery::get_dcps_info(), shutdown(), and svc().

ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::use_count_

Definition at line 245 of file InfoRepoDiscovery.h.

Referenced by OpenDDS::DCPS::InfoRepoDiscovery::get_dcps_info(), and OpenDDS::DCPS::InfoRepoDiscovery::~InfoRepoDiscovery().


The documentation for this struct was generated from the following files:
Generated on Fri Feb 12 20:06:19 2016 for OpenDDS by  doxygen 1.4.7