#include <DCPSInfoRepoServ.h>
Classes | |
struct | InitError |
Public Member Functions | |
InfoRepo (int argc, ACE_TCHAR *argv[]) | |
~InfoRepo () | |
void | run () |
virtual void | shutdown () |
ShutdownInterface used to schedule a shutdown. | |
void | sync_shutdown () |
virtual int | handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
Handler for the reactor to dispatch finalization activity to. | |
Private Member Functions | |
void | init () |
void | usage (const ACE_TCHAR *cmd) |
void | parse_args (int argc, ACE_TCHAR *argv[]) |
void | finalize () |
Actual finalization of service resources. | |
Private Attributes | |
CORBA::ORB_var | orb_ |
ACE_TString | ior_file_ |
std::string | listen_address_str_ |
int | listen_address_given_ |
bool | use_bits_ |
bool | resurrect_ |
ACE_Time_Value | reassociate_delay_ |
bool | finalized_ |
Flag to indicate that finalization has already occurred. | |
bool | servant_finalized_ |
OpenDDS::Federator::ManagerImpl | federator_ |
Repository Federation behaviors. | |
OpenDDS::Federator::Config | federatorConfig_ |
PortableServer::Servant_var < TAO_DDS_DCPSInfo_i > | info_servant_ |
ACE_Thread_Mutex | lock_ |
ACE_Condition_Thread_Mutex | cond_ |
bool | shutdown_complete_ |
ACE_Time_Value | dispatch_cleanup_delay_ |
Definition at line 25 of file DCPSInfoRepoServ.h.
InfoRepo::InfoRepo | ( | int | argc, | |
ACE_TCHAR * | argv[] | |||
) |
Definition at line 43 of file DCPSInfoRepoServ.cpp.
References ACE_TEXT(), finalize(), and init().
00044 : ior_file_(ACE_TEXT("repo.ior")) 00045 , listen_address_given_(0) 00046 #ifdef DDS_HAS_MINIMUM_BIT 00047 , use_bits_(false) 00048 #else 00049 , use_bits_(true) 00050 #endif 00051 , resurrect_(true) 00052 , finalized_(false) 00053 , servant_finalized_(false) 00054 , federator_(this->federatorConfig_) 00055 , federatorConfig_(argc, argv) 00056 , lock_() 00057 , cond_(lock_) 00058 , shutdown_complete_(false) 00059 , dispatch_cleanup_delay_(30,0) 00060 { 00061 try { 00062 this->init(); 00063 } catch (...) { 00064 this->finalize(); 00065 throw; 00066 } 00067 }
InfoRepo::~InfoRepo | ( | ) |
Definition at line 69 of file DCPSInfoRepoServ.cpp.
References finalize().
00070 { 00071 this->finalize(); 00072 }
void InfoRepo::finalize | ( | void | ) | [private] |
Actual finalization of service resources.
Definition at line 86 of file DCPSInfoRepoServ.cpp.
References federator_, OpenDDS::Federator::ManagerImpl::finalize(), finalized_, info_servant_, CORBA::is_nil(), orb_, servant_finalized_, and TheServiceParticipant.
Referenced by InfoRepo(), run(), and ~InfoRepo().
00087 { 00088 if (this->finalized_) { 00089 return; 00090 } 00091 00092 if (!this->servant_finalized_) { 00093 // reached if the ImR caused the ORB to shut down, 00094 // which bypasses InfoRepo::handle_exception() 00095 this->info_servant_->finalize(); 00096 this->federator_.finalize(); 00097 TheServiceParticipant->shutdown(); 00098 this->servant_finalized_ = true; 00099 } 00100 00101 if (!CORBA::is_nil(this->orb_)) { 00102 try { 00103 this->orb_->destroy(); 00104 } 00105 catch (const CORBA::Exception&) { 00106 //finalizing anyway, not an issue. 00107 } 00108 } 00109 00110 this->finalized_ = true; 00111 }
int InfoRepo::handle_exception | ( | ACE_HANDLE | fd = ACE_INVALID_HANDLE |
) | [virtual] |
Handler for the reactor to dispatch finalization activity to.
Reimplemented from ACE_Event_Handler.
Definition at line 114 of file DCPSInfoRepoServ.cpp.
References federator_, OpenDDS::Federator::ManagerImpl::finalize(), info_servant_, orb_, servant_finalized_, and TheServiceParticipant.
00115 { 00116 // these should occur before ORB::shutdown() since they use the ORB/reactor 00117 this->info_servant_->finalize(); 00118 this->federator_.finalize(); 00119 TheServiceParticipant->shutdown(); 00120 this->servant_finalized_ = true; 00121 00122 this->orb_->shutdown(true); 00123 return 0; 00124 }
void InfoRepo::init | ( | void | ) | [private] |
Definition at line 230 of file DCPSInfoRepoServ.cpp.
References IORTable::Table::_narrow(), PortableServer::POA::_narrow(), ACE_TEXT(), ACE_ARGV_T< CHAR_TYPE >::add(), ACE_ARGV_T< CHAR_TYPE >::argc(), ACE_ARGV_T< CHAR_TYPE >::argv(), OpenDDS::Federator::Config::argv(), ACE_OS::atoi(), ACE_String_Base< ACE_CHAR_T >::c_str(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::Discovery::DEFAULT_REPO, dispatch_cleanup_delay_, ACE_OS::fclose(), OpenDDS::Federator::Config::federateIor(), OpenDDS::Federator::Config::federationDomain(), OpenDDS::Federator::Config::federationId(), federator_, OpenDDS::Federator::FEDERATOR_IORTABLE_KEY, federatorConfig_, ACE_OS::fopen(), ACE_OS::fprintf(), OpenDDS::DCPS::Service_Participant::get_discovery(), OpenDDS::Federator::ManagerImpl::id(), TAO_Seq_Var_Base_T< T >::in(), OpenDDS::Federator::ManagerImpl::info(), info_servant_, ior_file_, CORBA::is_nil(), LM_DEBUG, LM_ERROR, OpenDDS::Federator::ManagerImpl::localRepo(), OpenDDS::Federator::ManagerImpl::orb(), orb_, CORBA::ORB_init(), TAO_DDS_DCPSFederationId::overridden(), parse_args(), PortableServer::PERSISTENT, reassociate_delay_, OpenDDS::Federator::REPOSITORY_IORTABLE_KEY, resurrect_, OpenDDS::DCPS::Service_Participant::set_repo_ior(), OpenDDS::DCPS::static_rchandle_cast(), ACE_OS::strcmp(), PortableServer::string_to_ObjectId(), TheParticipantFactoryWithArgs, TheServiceParticipant, use_bits_, PortableServer::USER_ID, and ACE_Time_Value::zero.
Referenced by InfoRepo().
00231 { 00232 ACE_ARGV args; 00233 args.add(federatorConfig_.argv(), true /*quote arg*/); 00234 00235 bool use_bidir = true; 00236 00237 for (int i = 0; i < args.argc() - 1; ++i) { 00238 if (0 == ACE_OS::strcmp(args[i], ACE_TEXT("-DCPSBidirGIOP"))) { 00239 use_bidir = ACE_OS::atoi(args[i + 1]); 00240 break; 00241 } 00242 } 00243 00244 if (use_bidir) { 00245 const ACE_TCHAR* config[] = { 00246 ACE_TEXT("-ORBSvcConfDirective"), 00247 ACE_TEXT("static Client_Strategy_Factory \"-ORBWaitStrategy rw ") 00248 ACE_TEXT("-ORBTransportMuxStrategy exclusive -ORBConnectStrategy blocked ") 00249 ACE_TEXT("-ORBConnectionHandlerCleanup 1\""), 00250 ACE_TEXT("-ORBSvcConfDirective"), 00251 ACE_TEXT("static Resource_Factory \"-ORBFlushingStrategy blocking\""), 00252 0 00253 }; 00254 args.add((ACE_TCHAR**)config, true /*quote arg*/); 00255 } 00256 00257 int argc = args.argc(); 00258 orb_ = CORBA::ORB_init(argc, args.argv()); 00259 00260 this->info_servant_ = 00261 new TAO_DDS_DCPSInfo_i(this->orb_, this->resurrect_, this, 00262 this->federatorConfig_.federationId()); 00263 00264 // Install the DCPSInfo_i into the Federator::Manager. 00265 this->federator_.info() = this->info_servant_.in(); 00266 00267 CORBA::Object_var obj = 00268 this->orb_->resolve_initial_references("RootPOA"); 00269 PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj); 00270 00271 PortableServer::POAManager_var poa_manager = root_poa->the_POAManager(); 00272 00273 // Use persistent and user id POA policies so the Info Repo's 00274 // object references are consistent. 00275 CORBA::PolicyList policies(2 + use_bidir); 00276 policies.length(2 + use_bidir); 00277 policies[0] = root_poa->create_id_assignment_policy(PortableServer::USER_ID); 00278 policies[1] = root_poa->create_lifespan_policy(PortableServer::PERSISTENT); 00279 if (use_bidir) { 00280 CORBA::Any policy; 00281 policy <<= BiDirPolicy::BOTH; 00282 policies[2] = 00283 orb_->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, policy); 00284 } 00285 PortableServer::POA_var info_poa = root_poa->create_POA("InfoRepo", 00286 poa_manager, 00287 policies); 00288 00289 // Creation of the new POAs over, so destroy the Policy_ptr's. 00290 for (CORBA::ULong i = 0; i < policies.length(); ++i) { 00291 policies[i]->destroy(); 00292 } 00293 00294 PortableServer::ObjectId_var oid = 00295 PortableServer::string_to_ObjectId("InfoRepo"); 00296 info_poa->activate_object_with_id(oid, this->info_servant_.in()); 00297 obj = info_poa->id_to_reference(oid); 00298 // the object is created locally, so it is safe to do an 00299 // _unchecked_narrow, this was needed to prevent an exception 00300 // when dealing with ImR-ified objects 00301 OpenDDS::DCPS::DCPSInfo_var info_repo = 00302 OpenDDS::DCPS::DCPSInfo::_unchecked_narrow(obj); 00303 00304 CORBA::String_var objref_str = 00305 orb_->object_to_string(info_repo); 00306 00307 // Initialize the DomainParticipantFactory 00308 DDS::DomainParticipantFactory_var dpf = 00309 TheParticipantFactoryWithArgs(argc, args.argv()); 00310 00311 // We need parse the command line options for DCPSInfoRepo after parsing DCPS specific 00312 // command line options. 00313 00314 // Check the non-ORB arguments. 00315 this->parse_args(argc, args.argv()); 00316 00317 // Activate the POA manager before initialize built-in-topics 00318 // so invocations can be processed. 00319 poa_manager->activate(); 00320 00321 if (this->use_bits_) { 00322 if (this->info_servant_->init_transport(this->listen_address_given_, 00323 this->listen_address_str_.c_str()) 00324 != 0 /* init_transport returns 0 for success */) { 00325 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: DCPSInfoRepo::init: ") 00326 ACE_TEXT("Unable to initialize transport.\n"))); 00327 throw InitError("Unable to initialize transport."); 00328 } 00329 00330 } else { 00331 TheServiceParticipant->set_BIT(false); 00332 } 00333 00334 // This needs to be done after initialization since we create the reference 00335 // to ourselves in the service here. 00336 OpenDDS::DCPS::Service_Participant* serv_part = TheServiceParticipant; 00337 serv_part->set_repo_ior(objref_str, OpenDDS::DCPS::Discovery::DEFAULT_REPO); 00338 00339 OpenDDS::DCPS::Discovery_rch disc = serv_part->get_discovery(0 /*domainId*/); 00340 OpenDDS::DCPS::InfoRepoDiscovery_rch ird = 00341 OpenDDS::DCPS::static_rchandle_cast<OpenDDS::DCPS::InfoRepoDiscovery>(disc); 00342 if (!ird->set_ORB(orb_)) { 00343 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: DCPSInfoRepo::init: ") 00344 ACE_TEXT("Unable to set the ORB in InfoRepoDiscovery.\n"))); 00345 throw InitError("Unable to set the ORB in InfoRepoDiscovery."); 00346 } 00347 00348 // Initialize persistence _after_ initializing the participant factory 00349 // and initializing the transport. 00350 if (!this->info_servant_->init_persistence()) { 00351 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: DCPSInfoRepo::init: ") 00352 ACE_TEXT("Unable to initialize persistence.\n"))); 00353 throw InitError("Unable to initialize persistence."); 00354 } 00355 00356 // Initialize reassociation. 00357 if (this->reassociate_delay_ != ACE_Time_Value::zero && 00358 !this->info_servant_->init_reassociation(this->reassociate_delay_)) { 00359 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: DCPSInfoRepo::init: ") 00360 ACE_TEXT("Unable to initialize reassociation.\n"))); 00361 throw InitError("Unable to initialize reassociation."); 00362 } 00363 00364 // Initialize dispatch checking 00365 if (this->dispatch_cleanup_delay_ != ACE_Time_Value::zero && 00366 !this->info_servant_->init_dispatchChecking(this->dispatch_cleanup_delay_)) { 00367 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: DCPSInfoRepo::init: ") 00368 ACE_TEXT("Unable to initialize Dispatch checking.\n"))); 00369 throw InitError("Unable to initialize dispatch checking."); 00370 } 00371 00372 // Fire up the federator. 00373 OpenDDS::Federator::Manager_var federator; 00374 CORBA::String_var federator_ior; 00375 00376 if (federator_.id().overridden()) { 00377 oid = PortableServer::string_to_ObjectId("Federator"); 00378 info_poa->activate_object_with_id(oid, &federator_); 00379 obj = info_poa->id_to_reference(oid); 00380 federator = OpenDDS::Federator::Manager::_narrow(obj); 00381 00382 federator_ior = orb_->object_to_string(federator); 00383 00384 // Add a local repository reference that can be returned via a 00385 // remote call to a peer. 00386 this->federator_.localRepo(info_repo); 00387 00388 // It should be safe to initialize the federation mechanism at this 00389 // point. What we really needed to wait for is the initialization of 00390 // the service components - like the DomainParticipantFactory and the 00391 // repository bindings. 00392 // N.B. This is done *before* being added to the IOR table to avoid any 00393 // races with an eager client. 00394 this->federator_.orb(this->orb_); 00395 00396 // 00397 // Add the federator to the info_servant update manager as an 00398 // additional updater interface to be called. 00399 // N.B. This needs to be done *after* the call to load_domains() 00400 // since that is where the update manager is initialized in the 00401 // info startup sequencing. 00402 this->info_servant_->add(&this->federator_); 00403 } 00404 00405 // Grab the IOR table. 00406 CORBA::Object_var table_object = 00407 this->orb_->resolve_initial_references("IORTable"); 00408 00409 IORTable::Table_var adapter = IORTable::Table::_narrow(table_object); 00410 00411 if (CORBA::is_nil(adapter)) { 00412 ACE_ERROR((LM_ERROR, ACE_TEXT("Nil IORTable\n"))); 00413 00414 } else { 00415 adapter->bind(OpenDDS::Federator::REPOSITORY_IORTABLE_KEY, objref_str); 00416 00417 if (this->federator_.id().overridden()) { 00418 // Bind to '/Federator' 00419 adapter->bind(OpenDDS::Federator::FEDERATOR_IORTABLE_KEY, federator_ior); 00420 00421 // Bind to '/Federator/1382379631' 00422 std::stringstream buffer(OpenDDS::Federator::FEDERATOR_IORTABLE_KEY); 00423 buffer << "/" << std::dec << this->federatorConfig_.federationDomain(); 00424 adapter->bind(buffer.str().c_str(), federator_ior); 00425 } 00426 } 00427 00428 FILE* output_file = ACE_OS::fopen(this->ior_file_.c_str(), ACE_TEXT("w")); 00429 00430 if (output_file == 0) { 00431 ACE_ERROR((LM_ERROR, ACE_TEXT("ERROR: Unable to open IOR file: %s\n"), 00432 ior_file_.c_str())); 00433 throw InitError("Unable to open IOR file."); 00434 } 00435 00436 ACE_OS::fprintf(output_file, "%s", objref_str.in()); 00437 ACE_OS::fclose(output_file); 00438 00439 // Initial federation join if specified on command line. 00440 if (this->federator_.id().overridden() 00441 && !this->federatorConfig_.federateIor().empty()) { 00442 if (OpenDDS::DCPS::DCPS_debug_level > 0) { 00443 ACE_DEBUG((LM_DEBUG, 00444 ACE_TEXT("(%P|%t) INFO: DCPSInfoRepo::init() - ") 00445 ACE_TEXT("joining federation with repository %s\n"), 00446 this->federatorConfig_.federateIor().c_str())); 00447 } 00448 00449 obj = this->orb_->string_to_object( 00450 this->federatorConfig_.federateIor().c_str()); 00451 00452 if (CORBA::is_nil(obj)) { 00453 ACE_ERROR((LM_ERROR, 00454 ACE_TEXT("(%P|%t) ERROR: could not resolve %s for initial federation.\n"), 00455 this->federatorConfig_.federateIor().c_str())); 00456 throw InitError("Unable to resolve IOR for initial federation."); 00457 } 00458 00459 OpenDDS::Federator::Manager_var peer = 00460 OpenDDS::Federator::Manager::_narrow(obj); 00461 00462 if (CORBA::is_nil(peer)) { 00463 ACE_ERROR((LM_ERROR, 00464 ACE_TEXT("(%P|%t) ERROR: could not narrow %s.\n"), 00465 this->federatorConfig_.federateIor().c_str())); 00466 throw InitError("Unable to narrow peer for initial federation."); 00467 } 00468 00469 // Actually join. 00470 peer = peer->join_federation(federator, 00471 this->federatorConfig_.federationDomain()); 00472 } 00473 }
void InfoRepo::parse_args | ( | int | argc, | |
ACE_TCHAR * | argv[] | |||
) | [private] |
Definition at line 168 of file DCPSInfoRepoServ.cpp.
References ACE_TEXT(), ACE_TEXT_ALWAYS_CHAR, ACE_OS::atoi(), ACE_Arg_Shifter_T< class >::consume_arg(), ACE_Arg_Shifter_T< class >::cur_arg_strncasecmp(), dispatch_cleanup_delay_, ACE_Arg_Shifter_T< class >::get_the_parameter(), ACE_Arg_Shifter_T< class >::ignore_arg(), ior_file_, ACE_Arg_Shifter_T< class >::is_anything_left(), listen_address_given_, listen_address_str_, ACE_Time_Value::msec(), reassociate_delay_, resurrect_, ACE_Time_Value::sec(), TURN_ON_VERBOSE_DEBUG, usage(), and use_bits_.
Referenced by init().
00169 { 00170 ACE_Arg_Shifter arg_shifter(argc, argv); 00171 00172 const ACE_TCHAR* current_arg = 0; 00173 00174 while (arg_shifter.is_anything_left()) { 00175 if ((current_arg = arg_shifter.get_the_parameter(ACE_TEXT("-a"))) != 0) { 00176 this->listen_address_str_ = ACE_TEXT_ALWAYS_CHAR(current_arg); 00177 this->listen_address_given_ = 1; 00178 arg_shifter.consume_arg(); 00179 // Must check for -ReassociateDelay before -r 00180 } else if ((current_arg = arg_shifter.get_the_parameter(ACE_TEXT("-ReassociateDelay"))) != 0) { 00181 long msec = ACE_OS::atoi(current_arg); 00182 this->reassociate_delay_.msec(msec); 00183 00184 arg_shifter.consume_arg(); 00185 } else if ((current_arg = arg_shifter.get_the_parameter 00186 (ACE_TEXT("-r"))) != 0) { 00187 int p = ACE_OS::atoi(current_arg); 00188 this->resurrect_ = true; 00189 00190 if (p == 0) { 00191 this->resurrect_ = false; 00192 } 00193 00194 arg_shifter.consume_arg(); 00195 00196 } else if ((current_arg = arg_shifter.get_the_parameter(ACE_TEXT("-o"))) != 0) { 00197 this->ior_file_ = current_arg; 00198 arg_shifter.consume_arg(); 00199 00200 } else if (arg_shifter.cur_arg_strncasecmp(ACE_TEXT("-NOBITS")) == 0) { 00201 this->use_bits_ = false; 00202 arg_shifter.consume_arg(); 00203 00204 } else if (arg_shifter.cur_arg_strncasecmp(ACE_TEXT("-z")) == 0) { 00205 TURN_ON_VERBOSE_DEBUG; 00206 arg_shifter.consume_arg(); 00207 00208 } else if ((current_arg = arg_shifter.get_the_parameter(ACE_TEXT("-DispatchingCheckDelay"))) != 0) { 00209 long sec = ACE_OS::atoi(current_arg); 00210 this->dispatch_cleanup_delay_.sec(sec); 00211 arg_shifter.consume_arg(); 00212 00213 } 00214 00215 // The '-?' option 00216 else if (arg_shifter.cur_arg_strncasecmp(ACE_TEXT("-?")) == 0) { 00217 this->usage(argv[0]); 00218 throw InitError("Usage"); 00219 } 00220 00221 // Anything else we just skip 00222 00223 else { 00224 arg_shifter.ignore_arg(); 00225 } 00226 } 00227 }
void InfoRepo::run | ( | void | ) |
Definition at line 75 of file DCPSInfoRepoServ.cpp.
References cond_, finalize(), lock_, orb_, shutdown_complete_, and ACE_Condition< ACE_Thread_Mutex >::signal().
Referenced by ACE_TMAIN().
00076 { 00077 this->shutdown_complete_ = false; 00078 this->orb_->run(); 00079 this->finalize(); 00080 ACE_GUARD(ACE_Thread_Mutex, g, this->lock_); 00081 this->shutdown_complete_ = true; 00082 this->cond_.signal(); 00083 }
void InfoRepo::shutdown | ( | void | ) | [virtual] |
ShutdownInterface used to schedule a shutdown.
Implements ShutdownInterface.
Definition at line 127 of file DCPSInfoRepoServ.cpp.
References orb_.
Referenced by InfoRepo_Shutdown::operator()(), and sync_shutdown().
00128 { 00129 this->orb_->orb_core()->reactor()->notify(this); 00130 // reactor will invoke our InfoRepo::handle_exception() 00131 }
void InfoRepo::sync_shutdown | ( | ) |
shutdown() and wait for it to complete: cannot be called from the reactor thread.
Definition at line 134 of file DCPSInfoRepoServ.cpp.
References cond_, lock_, shutdown(), shutdown_complete_, and ACE_Condition< ACE_Thread_Mutex >::wait().
00135 { 00136 this->shutdown(); 00137 ACE_GUARD(ACE_Thread_Mutex, g, this->lock_); 00138 00139 while (!this->shutdown_complete_) { 00140 this->cond_.wait(); 00141 } 00142 }
void InfoRepo::usage | ( | const ACE_TCHAR * | cmd | ) | [private] |
Definition at line 145 of file DCPSInfoRepoServ.cpp.
References ACE_TEXT(), and LM_INFO.
Referenced by parse_args().
00146 { 00147 // NOTE: The federation arguments are parsed early by the 00148 // FederationConfig object. 00149 ACE_DEBUG((LM_INFO, 00150 ACE_TEXT("Usage:\n") 00151 ACE_TEXT(" %s\n") 00152 ACE_TEXT(" -a <address> listening address for Built-In Topics\n") 00153 ACE_TEXT(" -o <file> write ior to file\n") 00154 ACE_TEXT(" -NOBITS disable the Built-In Topics\n") 00155 ACE_TEXT(" -z turn on verbose Transport logging\n") 00156 ACE_TEXT(" -r Resurrect from persistent file\n") 00157 ACE_TEXT(" -FederatorConfig <file> configure federation from <file>\n") 00158 ACE_TEXT(" -FederationId <number> value for this repository\n") 00159 ACE_TEXT(" -FederateWith <ior> federate initially with object at <ior>\n") 00160 ACE_TEXT(" -ReassociateDelay <msec> delay between reassociations\n") 00161 ACE_TEXT(" -DispatchingCheckDelay <sec> delay between checks for cleaning up dispatching connections.\n") 00162 ACE_TEXT(" -?\n") 00163 ACE_TEXT("\n"), 00164 cmd)); 00165 }
ACE_Condition_Thread_Mutex InfoRepo::cond_ [private] |
Definition at line 76 of file DCPSInfoRepoServ.h.
Referenced by run(), and sync_shutdown().
Definition at line 79 of file DCPSInfoRepoServ.h.
Referenced by init(), and parse_args().
Repository Federation behaviors.
Definition at line 70 of file DCPSInfoRepoServ.h.
Referenced by finalize(), handle_exception(), and init().
Definition at line 71 of file DCPSInfoRepoServ.h.
Referenced by init().
bool InfoRepo::finalized_ [private] |
Flag to indicate that finalization has already occurred.
Definition at line 66 of file DCPSInfoRepoServ.h.
Referenced by finalize().
Definition at line 73 of file DCPSInfoRepoServ.h.
Referenced by finalize(), handle_exception(), and init().
ACE_TString InfoRepo::ior_file_ [private] |
Definition at line 58 of file DCPSInfoRepoServ.h.
Referenced by init(), and parse_args().
int InfoRepo::listen_address_given_ [private] |
Definition at line 60 of file DCPSInfoRepoServ.h.
Referenced by parse_args().
std::string InfoRepo::listen_address_str_ [private] |
Definition at line 59 of file DCPSInfoRepoServ.h.
Referenced by parse_args().
ACE_Thread_Mutex InfoRepo::lock_ [private] |
Definition at line 75 of file DCPSInfoRepoServ.h.
Referenced by run(), and sync_shutdown().
CORBA::ORB_var InfoRepo::orb_ [private] |
Definition at line 56 of file DCPSInfoRepoServ.h.
Referenced by finalize(), handle_exception(), init(), run(), and shutdown().
ACE_Time_Value InfoRepo::reassociate_delay_ [private] |
Definition at line 63 of file DCPSInfoRepoServ.h.
Referenced by init(), and parse_args().
bool InfoRepo::resurrect_ [private] |
Definition at line 62 of file DCPSInfoRepoServ.h.
Referenced by init(), and parse_args().
bool InfoRepo::servant_finalized_ [private] |
Definition at line 67 of file DCPSInfoRepoServ.h.
Referenced by finalize(), and handle_exception().
bool InfoRepo::shutdown_complete_ [private] |
Definition at line 77 of file DCPSInfoRepoServ.h.
Referenced by run(), and sync_shutdown().
bool InfoRepo::use_bits_ [private] |
Definition at line 61 of file DCPSInfoRepoServ.h.
Referenced by init(), and parse_args().