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 &) | |
OrbRunner & | operator= (const OrbRunner &) |
Definition at line 248 of file InfoRepoDiscovery.h.
OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::OrbRunner | ( | ) | [inline] |
Definition at line 249 of file InfoRepoDiscovery.h.
OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::OrbRunner | ( | const OrbRunner & | ) | [private] |
Reimplemented from ACE_Task_Base.
void OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::shutdown | ( | void | ) |
Definition at line 990 of file InfoRepoDiscovery.cpp.
References orb_, and ACE_Task_Base::wait().
Referenced by OpenDDS::DCPS::InfoRepoDiscovery::~InfoRepoDiscovery().
int OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::svc | ( | void | ) | [virtual] |
Reimplemented from ACE_Task_Base.
Definition at line 1001 of file InfoRepoDiscovery.cpp.
References CORBA::Exception::_tao_print_exception(), orb_, SIG_SETMASK, ACE_OS::sigfillset(), sigset_t, and ACE_OS::thr_sigsetmask().
01002 { 01003 // this method was originally Service_Participant::svc() 01004 bool done = false; 01005 01006 // Ignore all signals to avoid 01007 // ERROR: <something descriptive> Interrupted system call 01008 // The main thread will handle signals. 01009 sigset_t set; 01010 ACE_OS::sigfillset(&set); 01011 ACE_OS::thr_sigsetmask(SIG_SETMASK, &set, NULL); 01012 01013 while (!done) { 01014 try { 01015 if (orb_->orb_core()->has_shutdown() == false) { 01016 orb_->run(); 01017 } 01018 01019 done = true; 01020 01021 } catch (const CORBA::SystemException& sysex) { 01022 sysex._tao_print_exception( 01023 "ERROR: InfoRepoDiscovery::OrbRunner"); 01024 01025 } catch (const CORBA::UserException& userex) { 01026 userex._tao_print_exception( 01027 "ERROR: InfoRepoDiscovery::OrbRunner"); 01028 01029 } catch (const CORBA::Exception& ex) { 01030 ex._tao_print_exception( 01031 "ERROR: InfoRepoDiscovery::OrbRunner"); 01032 } 01033 01034 if (orb_->orb_core()->has_shutdown()) { 01035 done = true; 01036 01037 } else { 01038 orb_->orb_core()->reactor()->reset_reactor_event_loop(); 01039 } 01040 } 01041 01042 return 0; 01043 }
Definition at line 253 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 254 of file InfoRepoDiscovery.h.
Referenced by OpenDDS::DCPS::InfoRepoDiscovery::get_dcps_info(), and OpenDDS::DCPS::InfoRepoDiscovery::~InfoRepoDiscovery().