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 239 of file InfoRepoDiscovery.h.
OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::OrbRunner | ( | ) | [inline] |
OpenDDS::DCPS::InfoRepoDiscovery::OrbRunner::OrbRunner | ( | 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 }
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().