#include <UIOP_Acceptor.h>
Inheritance diagram for TAO_UIOP_Acceptor:
Public Types | |
typedef TAO_Strategy_Acceptor< TAO_UIOP_Connection_Handler, ACE_LSOCK_ACCEPTOR > | TAO_UIOP_BASE_ACCEPTOR |
typedef TAO_Creation_Strategy< TAO_UIOP_Connection_Handler > | TAO_UIOP_CREATION_STRATEGY |
typedef TAO_Concurrency_Strategy< TAO_UIOP_Connection_Handler > | TAO_UIOP_CONCURRENCY_STRATEGY |
typedef TAO_Accept_Strategy< TAO_UIOP_Connection_Handler, ACE_LSOCK_ACCEPTOR > | TAO_UIOP_ACCEPT_STRATEGY |
Public Member Functions | |
TAO_UIOP_Acceptor (void) | |
Create Acceptor object using addr. | |
virtual | ~TAO_UIOP_Acceptor (void) |
Destructor. | |
The TAO_Acceptor Methods | |
virtual int | open (TAO_ORB_Core *orb_core, ACE_Reactor *reactor, int version_major, int version_minor, const char *address, const char *options=0) |
virtual int | open_default (TAO_ORB_Core *orb_core, ACE_Reactor *reactor, int version_major, int version_minor, const char *options=0) |
virtual int | close (void) |
virtual int | create_profile (const TAO::ObjectKey &object_key, TAO_MProfile &mprofile, CORBA::Short priority) |
virtual int | is_collocated (const TAO_Endpoint *endpoint) |
virtual CORBA::ULong | endpoint_count (void) |
virtual int | object_key (IOP::TaggedProfile &profile, TAO::ObjectKey &key) |
Private Member Functions | |
int | open_i (const char *rendezvous, ACE_Reactor *reactor) |
Implement the common part of the open*() methods. | |
void | rendezvous_point (ACE_UNIX_Addr &, const char *rendezvous) |
int | parse_options (const char *options) |
Parse protocol specific options. | |
int | init_uiop_properties (void) |
int | create_new_profile (const TAO::ObjectKey &object_key, TAO_MProfile &mprofile, CORBA::Short priority) |
Create a UIOP profile representing this acceptor. | |
int | create_shared_profile (const TAO::ObjectKey &object_key, TAO_MProfile &mprofile, CORBA::Short priority) |
Add the endpoints on this acceptor to a shared profile. | |
Private Attributes | |
TAO_UIOP_BASE_ACCEPTOR | base_acceptor_ |
The concrete acceptor, as a pointer to its base class. | |
TAO_UIOP_CREATION_STRATEGY * | creation_strategy_ |
TAO_UIOP_CONCURRENCY_STRATEGY * | concurrency_strategy_ |
TAO_UIOP_ACCEPT_STRATEGY * | accept_strategy_ |
TAO_GIOP_Message_Version | version_ |
The GIOP version for this endpoint. | |
TAO_ORB_Core * | orb_core_ |
ORB Core. | |
bool | unlink_on_close_ |
Definition at line 44 of file UIOP_Acceptor.h.
typedef TAO_Accept_Strategy<TAO_UIOP_Connection_Handler, ACE_LSOCK_ACCEPTOR> TAO_UIOP_Acceptor::TAO_UIOP_ACCEPT_STRATEGY |
Definition at line 59 of file UIOP_Acceptor.h.
typedef TAO_Strategy_Acceptor<TAO_UIOP_Connection_Handler, ACE_LSOCK_ACCEPTOR> TAO_UIOP_Acceptor::TAO_UIOP_BASE_ACCEPTOR |
Definition at line 56 of file UIOP_Acceptor.h.
typedef TAO_Concurrency_Strategy<TAO_UIOP_Connection_Handler> TAO_UIOP_Acceptor::TAO_UIOP_CONCURRENCY_STRATEGY |
Definition at line 58 of file UIOP_Acceptor.h.
typedef TAO_Creation_Strategy<TAO_UIOP_Connection_Handler> TAO_UIOP_Acceptor::TAO_UIOP_CREATION_STRATEGY |
Definition at line 57 of file UIOP_Acceptor.h.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_UIOP_Acceptor::TAO_UIOP_Acceptor | ( | void | ) |
Create Acceptor object using addr.
Definition at line 24 of file UIOP_Acceptor.cpp.
00025 : TAO_Acceptor (TAO_TAG_UIOP_PROFILE), 00026 base_acceptor_ (this), 00027 creation_strategy_ (0), 00028 concurrency_strategy_ (0), 00029 accept_strategy_ (0), 00030 version_ (TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR), 00031 orb_core_ (0), 00032 unlink_on_close_ (true) 00033 { 00034 }
TAO_UIOP_Acceptor::~TAO_UIOP_Acceptor | ( | void | ) | [virtual] |
Destructor.
Definition at line 36 of file UIOP_Acceptor.cpp.
References accept_strategy_, close(), concurrency_strategy_, and creation_strategy_.
00037 { 00038 // Make sure we are closed before we start destroying the 00039 // strategies. 00040 this->close (); 00041 00042 delete this->creation_strategy_; 00043 delete this->concurrency_strategy_; 00044 delete this->accept_strategy_; 00045 }
int TAO_UIOP_Acceptor::close | ( | void | ) | [virtual] |
Implements TAO_Acceptor.
Definition at line 176 of file UIOP_Acceptor.cpp.
References base_acceptor_, ACE_Acceptor< SVC_HANDLER, >::close(), ACE_UNIX_Addr::get_path_name(), ACE_OS::unlink(), and unlink_on_close_.
Referenced by ~TAO_UIOP_Acceptor().
00177 { 00178 if (this->unlink_on_close_) 00179 { 00180 ACE_UNIX_Addr addr; 00181 00182 if (this->base_acceptor_.acceptor ().get_local_addr (addr) == 0) 00183 (void) ACE_OS::unlink (addr.get_path_name ()); 00184 00185 this->unlink_on_close_ = false; 00186 } 00187 00188 return this->base_acceptor_.close (); 00189 }
int TAO_UIOP_Acceptor::create_new_profile | ( | const TAO::ObjectKey & | object_key, | |
TAO_MProfile & | mprofile, | |||
CORBA::Short | priority | |||
) | [private] |
Create a UIOP profile representing this acceptor.
Definition at line 66 of file UIOP_Acceptor.cpp.
References TAO_Profile::_decr_refcnt(), ACE_NEW_RETURN, TAO_ORB_Core::codeset_manager(), TAO_UIOP_Profile::endpoint(), TAO_MProfile::give_profile(), TAO_MProfile::grow(), TAO_GIOP_Message_Version::major, TAO_GIOP_Message_Version::minor, orb_core_, TAO_Endpoint::priority(), TAO_MProfile::profile_count(), TAO_Codeset_Manager::set_codeset(), TAO_Tagged_Components::set_orb_type(), TAO_MProfile::size(), TAO_Profile::tagged_components(), TAO_ORB_TYPE, and version_.
Referenced by create_profile(), and create_shared_profile().
00069 { 00070 ACE_UNIX_Addr addr; 00071 00072 if (this->base_acceptor_.acceptor ().get_local_addr (addr) == -1) 00073 return 0; 00074 00075 int count = mprofile.profile_count (); 00076 if ((mprofile.size () - count) < 1 00077 && mprofile.grow (count + 1) == -1) 00078 return -1; 00079 00080 TAO_UIOP_Profile *pfile = 0; 00081 ACE_NEW_RETURN (pfile, 00082 TAO_UIOP_Profile (addr, 00083 object_key, 00084 this->version_, 00085 this->orb_core_), 00086 -1); 00087 pfile->endpoint ()->priority (priority); 00088 00089 if (mprofile.give_profile (pfile) == -1) 00090 { 00091 pfile->_decr_refcnt (); 00092 pfile = 0; 00093 return -1; 00094 } 00095 00096 // Do not add any tagged components to the profile if configured 00097 // by the user not to do so, or if an UIOP 1.0 endpoint is being 00098 // created (IIOP 1.0 did not support tagged components, so we follow 00099 // the same convention for UIOP). 00100 if (this->orb_core_->orb_params ()->std_profile_components () == 0 00101 || (this->version_.major == 1 && this->version_.minor == 0)) 00102 return 0; 00103 00104 pfile->tagged_components ().set_orb_type (TAO_ORB_TYPE); 00105 TAO_Codeset_Manager *csm = this->orb_core_->codeset_manager(); 00106 if (csm) 00107 csm->set_codeset(pfile->tagged_components()); 00108 return 0; 00109 }
int TAO_UIOP_Acceptor::create_profile | ( | const TAO::ObjectKey & | object_key, | |
TAO_MProfile & | mprofile, | |||
CORBA::Short | priority | |||
) | [virtual] |
Implements TAO_Acceptor.
Definition at line 48 of file UIOP_Acceptor.cpp.
References create_new_profile(), create_shared_profile(), and TAO_INVALID_PRIORITY.
00051 { 00052 // Check if multiple endpoints should be put in one profile or 00053 // if they should be spread across multiple profiles. 00054 if (priority == TAO_INVALID_PRIORITY) 00055 return this->create_new_profile (object_key, 00056 mprofile, 00057 priority); 00058 else 00059 return this->create_shared_profile (object_key, 00060 mprofile, 00061 priority); 00062 00063 }
int TAO_UIOP_Acceptor::create_shared_profile | ( | const TAO::ObjectKey & | object_key, | |
TAO_MProfile & | mprofile, | |||
CORBA::Short | priority | |||
) | [private] |
Add the endpoints on this acceptor to a shared profile.
Definition at line 112 of file UIOP_Acceptor.cpp.
References ACE_NEW_RETURN, TAO_UIOP_Profile::add_endpoint(), create_new_profile(), TAO_MProfile::get_profile(), TAO_Endpoint::priority(), TAO_MProfile::profile_count(), TAO_Profile::tag(), and TAO_TAG_UIOP_PROFILE.
Referenced by create_profile().
00115 { 00116 TAO_Profile *pfile = 0; 00117 TAO_UIOP_Profile *uiop_profile = 0; 00118 00119 // First see if <mprofile> already contains a UIOP profile. 00120 for (TAO_PHandle i = 0; i != mprofile.profile_count (); ++i) 00121 { 00122 pfile = mprofile.get_profile (i); 00123 if (pfile->tag () == TAO_TAG_UIOP_PROFILE) 00124 { 00125 uiop_profile = dynamic_cast<TAO_UIOP_Profile *> (pfile); 00126 break; 00127 } 00128 } 00129 00130 if (uiop_profile == 0) 00131 { 00132 // If <mprofile> doesn't contain UIOP_Profile, we need to create 00133 // one. 00134 return create_new_profile (object_key, 00135 mprofile, 00136 priority); 00137 } 00138 else 00139 { 00140 // A UIOP_Profile already exists - just add our endpoint to it. 00141 ACE_UNIX_Addr addr; 00142 00143 if (this->base_acceptor_.acceptor ().get_local_addr (addr) == -1) 00144 return 0; 00145 00146 TAO_UIOP_Endpoint *endpoint = 0; 00147 ACE_NEW_RETURN (endpoint, 00148 TAO_UIOP_Endpoint (addr), 00149 -1); 00150 endpoint->priority (priority); 00151 uiop_profile->add_endpoint (endpoint); 00152 00153 return 0; 00154 } 00155 }
CORBA::ULong TAO_UIOP_Acceptor::endpoint_count | ( | void | ) | [virtual] |
int TAO_UIOP_Acceptor::init_uiop_properties | ( | void | ) | [private] |
Obtains uiop properties that must be used by this acceptor, i.e., initializes <uiop_properties_>.
int TAO_UIOP_Acceptor::is_collocated | ( | const TAO_Endpoint * | endpoint | ) | [virtual] |
Implements TAO_Acceptor.
Definition at line 158 of file UIOP_Acceptor.cpp.
References TAO_UIOP_Endpoint::object_addr().
00159 { 00160 const TAO_UIOP_Endpoint *endp = 00161 dynamic_cast<const TAO_UIOP_Endpoint *> (endpoint); 00162 00163 // Make sure the dynamically cast pointer is valid. 00164 if (endp == 0) 00165 return 0; 00166 00167 // For UNIX Files this is relatively cheap. 00168 ACE_UNIX_Addr address; 00169 if (this->base_acceptor_.acceptor ().get_local_addr (address) == -1) 00170 return 0; 00171 00172 return endp->object_addr () == address; 00173 }
int TAO_UIOP_Acceptor::object_key | ( | IOP::TaggedProfile & | profile, | |
TAO::ObjectKey & | key | |||
) | [virtual] |
Implements TAO_Acceptor.
Definition at line 348 of file UIOP_Acceptor.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_TEXT, LM_DEBUG, LM_ERROR, and TAO_debug_level.
00350 { 00351 // Create the decoding stream from the encapsulation in the buffer, 00352 #if (TAO_NO_COPY_OCTET_SEQUENCES == 1) 00353 TAO_InputCDR cdr (profile.profile_data.mb ()); 00354 #else 00355 TAO_InputCDR cdr (reinterpret_cast<char*> (profile.profile_data.get_buffer ()), 00356 profile.profile_data.length ()); 00357 #endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ 00358 00359 CORBA::Octet major, minor; 00360 00361 // Read the version. We just read it here. We don't *do any* 00362 // processing. 00363 if (!(cdr.read_octet (major) && cdr.read_octet (minor))) 00364 { 00365 if (TAO_debug_level > 0) 00366 { 00367 ACE_DEBUG ((LM_DEBUG, 00368 ACE_TEXT ("TAO (%P|%t) IIOP_Profile::decode - v%d.%d\n"), 00369 major, 00370 minor)); 00371 } 00372 00373 return -1; 00374 } 00375 00376 char * rendezvous = 0; 00377 00378 // Get rendezvous_point 00379 if (cdr.read_string (rendezvous) == 0) 00380 { 00381 ACE_ERROR ((LM_ERROR, "error decoding UIOP rendezvous_point")); 00382 00383 return -1; 00384 } 00385 00386 // delete the rendezvous point. We don't do any processing. 00387 delete [] rendezvous; 00388 00389 // ... and object key. 00390 if ((cdr >> object_key) == 0) 00391 return -1; 00392 00393 return 1; 00394 }
int TAO_UIOP_Acceptor::open | ( | TAO_ORB_Core * | orb_core, | |
ACE_Reactor * | reactor, | |||
int | version_major, | |||
int | version_minor, | |||
const char * | address, | |||
const char * | options = 0 | |||
) | [virtual] |
Implements TAO_Acceptor.
Definition at line 192 of file UIOP_Acceptor.cpp.
References open_i(), orb_core_, TAO_GIOP_Message_Version::set_version(), and version_.
00198 { 00199 this->orb_core_ = orb_core; 00200 00201 if (address == 0) 00202 return -1; 00203 00204 if (major >= 0 && minor >= 0) 00205 this->version_.set_version (static_cast<CORBA::Octet> (major), 00206 static_cast<CORBA::Octet> (minor)); 00207 // Parse options 00208 if (this->parse_options (options) == -1) 00209 return -1; 00210 else 00211 return this->open_i (address, 00212 reactor); 00213 }
int TAO_UIOP_Acceptor::open_default | ( | TAO_ORB_Core * | orb_core, | |
ACE_Reactor * | reactor, | |||
int | version_major, | |||
int | version_minor, | |||
const char * | options = 0 | |||
) | [virtual] |
Implements TAO_Acceptor.
Definition at line 216 of file UIOP_Acceptor.cpp.
References ACE_Auto_String_Free::get(), open_i(), orb_core_, TAO_GIOP_Message_Version::set_version(), ACE_OS::tempnam(), and version_.
00221 { 00222 this->orb_core_ = orb_core; 00223 00224 if (major >= 0 && minor >= 0) 00225 this->version_.set_version (static_cast<CORBA::Octet> (major), 00226 static_cast<CORBA::Octet> (minor)); 00227 00228 // Parse options 00229 if (this->parse_options (options) == -1) 00230 return -1; 00231 00232 ACE_Auto_String_Free tempname (ACE_OS::tempnam (0, "TAO")); 00233 00234 if (tempname.get () == 0) 00235 return -1; 00236 00237 return this->open_i (tempname.get (), 00238 reactor); 00239 }
int TAO_UIOP_Acceptor::open_i | ( | const char * | rendezvous, | |
ACE_Reactor * | reactor | |||
) | [private] |
Implement the common part of the open*() methods.
Definition at line 242 of file UIOP_Acceptor.cpp.
References ACE_CLOEXEC, ACE_DEBUG, ACE_NEW_RETURN, ACE_UNIX_Addr::get_path_name(), LM_DEBUG, rendezvous_point(), TAO_Acceptor::set_error_retry_delay(), TAO_debug_level, and unlink_on_close_.
Referenced by open(), and open_default().
00244 { 00245 ACE_NEW_RETURN (this->creation_strategy_, 00246 TAO_UIOP_CREATION_STRATEGY (this->orb_core_), 00247 -1); 00248 00249 ACE_NEW_RETURN (this->concurrency_strategy_, 00250 TAO_UIOP_CONCURRENCY_STRATEGY (this->orb_core_), 00251 -1); 00252 00253 ACE_NEW_RETURN (this->accept_strategy_, 00254 TAO_UIOP_ACCEPT_STRATEGY (this->orb_core_), 00255 -1); 00256 00257 ACE_UNIX_Addr addr; 00258 00259 this->rendezvous_point (addr, rendezvous); 00260 00261 if (this->base_acceptor_.open (addr, 00262 reactor, 00263 this->creation_strategy_, 00264 this->accept_strategy_, 00265 this->concurrency_strategy_) == -1) 00266 { 00267 // Don't unlink an existing rendezvous point since it may be in 00268 // use by another UIOP server/client. 00269 if (errno == EADDRINUSE) 00270 this->unlink_on_close_ = false; 00271 00272 return -1; 00273 } 00274 00275 (void) this->base_acceptor_.acceptor().enable (ACE_CLOEXEC); 00276 // This avoids having child processes acquire the listen socket thereby 00277 // denying the server the opportunity to restart on a well-known endpoint. 00278 // This does not affect the aberrent behavior on Win32 platforms. 00279 00280 // @@ If Profile creation is slow we may need to cache the 00281 // rendezvous point here 00282 00283 if (TAO_debug_level > 5) 00284 ACE_DEBUG ((LM_DEBUG, 00285 "\nTAO (%P|%t) UIOP_Acceptor::open_i - " 00286 "listening on: <%s>\n", 00287 addr.get_path_name ())); 00288 00289 // In the event that an accept() fails, we can examine the reason. If 00290 // the reason warrants it, we can try accepting again at a later time. 00291 // The amount of time we wait to accept again is governed by this orb 00292 // parameter. 00293 this->set_error_retry_delay ( 00294 this->orb_core_->orb_params ()->accept_error_delay()); 00295 00296 return 0; 00297 }
int TAO_UIOP_Acceptor::parse_options | ( | const char * | options | ) | [private] |
Parse protocol specific options.
Definition at line 397 of file UIOP_Acceptor.cpp.
References ACE_ERROR_RETURN, ACE_TEXT, ACE_String_Base< CHAR >::c_str(), ACE_String_Base< CHAR >::find(), ACE_String_Base< CHAR >::length(), LM_ERROR, ACE_String_Base_Const::npos, and ACE_String_Base< CHAR >::substring().
00398 { 00399 if (str == 0) 00400 return 0; // No options to parse. Not a problem. 00401 00402 // Use an option format similar to the one used for CGI scripts in 00403 // HTTP URLs. 00404 // e.g.: option1=foo&option2=bar 00405 00406 ACE_CString options (str); 00407 00408 const size_t len = options.length (); 00409 00410 static const char option_delimiter = '&'; 00411 00412 // Count the number of options. 00413 00414 CORBA::ULong option_count = 1; 00415 // Number of endpoints in the string (initialized to 1). 00416 00417 // Only check for endpoints after the protocol specification and 00418 // before the object key. 00419 for (size_t i = 0; i < len; ++i) 00420 if (options[i] == option_delimiter) 00421 ++option_count; 00422 00423 // The idea behind the following loop is to split the options into 00424 // (option, name) pairs. 00425 // For example, 00426 // `option1=foo&option2=bar' 00427 // will be parsed into: 00428 // `option1=foo' 00429 // `option2=bar' 00430 00431 ACE_CString::size_type begin = 0; 00432 ACE_CString::size_type end = 0; 00433 00434 for (CORBA::ULong j = 0; j < option_count; ++j) 00435 { 00436 if (j < option_count - 1) 00437 end = options.find (option_delimiter, begin); 00438 else 00439 end = len; 00440 00441 if (end == begin) 00442 ACE_ERROR_RETURN ((LM_ERROR, 00443 "TAO (%P|%t) Zero length UIOP option.\n"), 00444 -1); 00445 else if (end != ACE_CString::npos) 00446 { 00447 ACE_CString opt = 00448 options.substring (begin, end - begin); 00449 00450 ACE_CString::size_type const slot = opt.find ("="); 00451 00452 if (slot == len - 1 00453 || slot == ACE_CString::npos) 00454 ACE_ERROR_RETURN ((LM_ERROR, 00455 "TAO (%P|%t) UIOP option <%s> is " 00456 "missing a value.\n", 00457 opt.c_str ()), 00458 -1); 00459 00460 const ACE_CString name (opt.substring (0, slot)); 00461 ACE_CString value = opt.substring (slot + 1); 00462 00463 begin = end + 1; 00464 00465 if (name.length () == 0) 00466 ACE_ERROR_RETURN ((LM_ERROR, 00467 "TAO (%P|%t) Zero length UIOP " 00468 "option name.\n"), 00469 -1); 00470 00471 if (name == "priority") 00472 { 00473 ACE_ERROR_RETURN ((LM_ERROR, 00474 ACE_TEXT ("TAO (%P|%t) Invalid UIOP endpoint format: ") 00475 ACE_TEXT ("endpoint priorities no longer supported. \n")), 00476 -1); 00477 } 00478 else 00479 ACE_ERROR_RETURN ((LM_ERROR, 00480 "TAO (%P|%t) Invalid UIOP option: <%s>\n", 00481 name.c_str ()), 00482 -1); 00483 } 00484 else 00485 break; // No other options. 00486 } 00487 return 0; 00488 }
void TAO_UIOP_Acceptor::rendezvous_point | ( | ACE_UNIX_Addr & | , | |
const char * | rendezvous | |||
) | [private] |
Set the rendezvous point and verify that it is valid (e.g. wasn't truncated because it was too long).
Definition at line 300 of file UIOP_Acceptor.cpp.
References ACE_DEBUG, ACE_UNIX_Addr::get_path_name(), LM_WARNING, ACE_UNIX_Addr::set(), and ACE_OS::strlen().
Referenced by open_i().
00302 { 00303 // To guarantee portability, local IPC rendezvous points (including 00304 // the path and filename) should not be longer than 99 characters 00305 // long. Some platforms may support longer rendezvous points, 00306 // usually 108 characters including the null terminator, but 00307 // Posix.1g only requires that local IPC rendezvous point arrays 00308 // contain a maximum of at least 100 characters, including the null 00309 // terminator. If an endpoint is longer than what the platform 00310 // supports then it will be truncated so that it fits, and a warning 00311 // will be issued. 00312 00313 // Avoid using relative paths in your UIOP endpoints. If possible, 00314 // use absolute paths instead. Imagine that the server is given an 00315 // endpoint to create using -ORBEndpoint uiop://foobar. A local IPC 00316 // rendezvous point called foobar will be created in the current 00317 // working directory. If the client is not started in the directory 00318 // where the foobar rendezvous point exists then the client will not 00319 // be able to communicate with the server since its point of 00320 // communication, the rendezvous point, was not found. On the other 00321 // hand, if an absolute path was used, the client would know exactly 00322 // where to find the rendezvous point. It is up to the user to make 00323 // sure that a given UIOP endpoint is accessible by both the server 00324 // and the client. 00325 00326 addr.set (rendezvous); 00327 00328 const size_t length = ACE_OS::strlen (addr.get_path_name ()); 00329 00330 // Check if rendezvous point was truncated by ACE_UNIX_Addr since 00331 // most UNIX domain socket rendezvous points can only be less than 00332 // 108 characters long. 00333 if (length < ACE_OS::strlen (rendezvous)) 00334 ACE_DEBUG ((LM_WARNING, 00335 "TAO (%P|%t) UIOP rendezvous point was truncated to <%s>\n" 00336 "since it was longer than %d characters long.\n", 00337 addr.get_path_name (), 00338 length)); 00339 }
The concrete acceptor, as a pointer to its base class.
Definition at line 118 of file UIOP_Acceptor.h.
Referenced by close().
TAO_ORB_Core* TAO_UIOP_Acceptor::orb_core_ [private] |
ORB Core.
Definition at line 129 of file UIOP_Acceptor.h.
Referenced by create_new_profile(), open(), and open_default().
bool TAO_UIOP_Acceptor::unlink_on_close_ [private] |
Flag that determines whether or not the rendezvous point should be unlinked on close. This is really only used when an error occurs.
Definition at line 134 of file UIOP_Acceptor.h.
The GIOP version for this endpoint.
Definition at line 126 of file UIOP_Acceptor.h.
Referenced by create_new_profile(), open(), and open_default().