TAO_IIOP_Acceptor Class Reference

TAO_IIOP_Acceptor. More...

#include <IIOP_Acceptor.h>

Inheritance diagram for TAO_IIOP_Acceptor:

Inheritance graph
[legend]
Collaboration diagram for TAO_IIOP_Acceptor:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_Strategy_Acceptor<
TAO_IIOP_Connection_Handler,
ACE_SOCK_ACCEPTOR
BASE_ACCEPTOR
typedef TAO_Creation_Strategy<
TAO_IIOP_Connection_Handler
CREATION_STRATEGY
typedef TAO_Concurrency_Strategy<
TAO_IIOP_Connection_Handler
CONCURRENCY_STRATEGY
typedef TAO_Accept_Strategy<
TAO_IIOP_Connection_Handler,
ACE_SOCK_ACCEPTOR
ACCEPT_STRATEGY

Public Member Functions

 TAO_IIOP_Acceptor (CORBA::Boolean flag=0)
 Constructor.
 ~TAO_IIOP_Acceptor (void)
 Destructor.
const ACE_INET_Addraddress (void) const
const ACE_INET_Addrendpoints (void)
 Returns the array of endpoints in this acceptor.
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)
 Closes the acceptor.
virtual int create_profile (const TAO::ObjectKey &object_key, TAO_MProfile &mprofile, CORBA::Short priority)
virtual int is_collocated (const TAO_Endpoint *endpoint)
 Return 1 if the <endpoint> has the same address as the acceptor.
virtual CORBA::ULong endpoint_count (void)
virtual int object_key (IOP::TaggedProfile &profile, TAO::ObjectKey &key)
virtual int hostname (TAO_ORB_Core *orb_core, ACE_INET_Addr &addr, char *&host, const char *specified_hostname=0)

Protected Member Functions

int dotted_decimal_address (ACE_INET_Addr &addr, char *&host)
virtual int open_i (const ACE_INET_Addr &addr, ACE_Reactor *reactor)
int probe_interfaces (TAO_ORB_Core *orb_core)
int parse_options (const char *options)
virtual int parse_options_i (int &argc, ACE_CString **argv)
int create_new_profile (const TAO::ObjectKey &object_key, TAO_MProfile &mprofile, CORBA::Short priority)
int create_shared_profile (const TAO::ObjectKey &object_key, TAO_MProfile &mprofile, CORBA::Short priority)

Protected Attributes

ACE_INET_Addraddrs_
unsigned short port_span_
char ** hosts_
char * hostname_in_ior_
CORBA::ULong endpoint_count_
TAO_GIOP_Message_Version version_
TAO_ORB_Coreorb_core_
 ORB Core.
const bool lite_flag_
 Should we use GIOP lite??
int reuse_addr_
 Enable socket optiosn SO_REUSEADDR to be set.

Private Attributes

BASE_ACCEPTOR base_acceptor_
 the concrete acceptor, as a pointer to it's base class.
CREATION_STRATEGYcreation_strategy_
 Acceptor strategies.
CONCURRENCY_STRATEGYconcurrency_strategy_
ACCEPT_STRATEGYaccept_strategy_

Detailed Description

TAO_IIOP_Acceptor.

The IIOP-specific bridge class for the concrete acceptor.


Member Typedef Documentation

typedef TAO_Accept_Strategy<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> TAO_IIOP_Acceptor::ACCEPT_STRATEGY
 

typedef ACE_Strategy_Acceptor<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> TAO_IIOP_Acceptor::BASE_ACCEPTOR
 

typedef TAO_Concurrency_Strategy<TAO_IIOP_Connection_Handler> TAO_IIOP_Acceptor::CONCURRENCY_STRATEGY
 

typedef TAO_Creation_Strategy<TAO_IIOP_Connection_Handler> TAO_IIOP_Acceptor::CREATION_STRATEGY
 


Constructor & Destructor Documentation

TAO_IIOP_Acceptor::TAO_IIOP_Acceptor CORBA::Boolean  flag = 0  ) 
 

Constructor.

TAO_IIOP_Acceptor::~TAO_IIOP_Acceptor void   ) 
 

Destructor.


Member Function Documentation

ACE_INLINE const ACE_INET_Addr & TAO_IIOP_Acceptor::address void   )  const
 

@ Helper method for the implementation repository, should go away

int TAO_IIOP_Acceptor::close void   )  [virtual]
 

Closes the acceptor.

Implements TAO_Acceptor.

int TAO_IIOP_Acceptor::create_new_profile const TAO::ObjectKey object_key,
TAO_MProfile mprofile,
CORBA::Short  priority
[protected]
 

Helper method to add a new profile to the mprofile for each endpoint.

int TAO_IIOP_Acceptor::create_profile const TAO::ObjectKey object_key,
TAO_MProfile mprofile,
CORBA::Short  priority
[virtual]
 

Create the corresponding profile for this endpoint. If share_profile is set to true, the pluggable protocol implementation should try to add the endpoint to a profile in the mprofile that is of the same type. Currently, this is used when RT CORBA is enabled.

Implements TAO_Acceptor.

int TAO_IIOP_Acceptor::create_shared_profile const TAO::ObjectKey object_key,
TAO_MProfile mprofile,
CORBA::Short  priority
[protected]
 

Helper method to create a profile that contains all of our endpoints.

int TAO_IIOP_Acceptor::dotted_decimal_address ACE_INET_Addr addr,
char *&  host
[protected]
 

Set the host name for the given address using the dotted decimal format.

CORBA::ULong TAO_IIOP_Acceptor::endpoint_count void   )  [virtual]
 

Returns the number of endpoints this acceptor is listening on. This is used for determining how many profiles will be generated for this acceptor.

Implements TAO_Acceptor.

ACE_INLINE const ACE_INET_Addr * TAO_IIOP_Acceptor::endpoints void   ) 
 

Returns the array of endpoints in this acceptor.

int TAO_IIOP_Acceptor::hostname TAO_ORB_Core orb_core,
ACE_INET_Addr addr,
char *&  host,
const char *  specified_hostname = 0
[virtual]
 

Set the host name for the given addr. A hostname may be forced by using specified_hostname. This is useful if the given address corresponds to more than one hostname and the desired one cannot be determined in any other way. This method is used both when constructing IOR endpoints and LPL (listen point lists).

The algorithm used is:

  • If hostname_in_ior_ has been set, it is used "as is";
  • else if use_dotted_decimal_addresses_ is set, the text representaion of the IP is used;
  • else if specified_hostname is given, it used "as is";
  • else a reverse (address to name) lookup is used to obtain the hostname or the IP if no reverse mapping exists.

int TAO_IIOP_Acceptor::is_collocated const TAO_Endpoint endpoint  )  [virtual]
 

Return 1 if the <endpoint> has the same address as the acceptor.

Implements TAO_Acceptor.

int TAO_IIOP_Acceptor::object_key IOP::TaggedProfile profile,
TAO::ObjectKey key
[virtual]
 

This method fetches the <key> from the <profile>. Protocols that are pluggable can send data that are specific in the <profile_data> field encapsulated as a octet stream. This method allows those protocols to get the object key from the encapsulation.

Implements TAO_Acceptor.

int TAO_IIOP_Acceptor::open TAO_ORB_Core orb_core,
ACE_Reactor reactor,
int  version_major,
int  version_minor,
const char *  address,
const char *  options = 0
[virtual]
 

The TAO_Acceptor methods, check the documentation in Transport_Acceptor.h for details.

Implements TAO_Acceptor.

int TAO_IIOP_Acceptor::open_default TAO_ORB_Core orb_core,
ACE_Reactor reactor,
int  version_major,
int  version_minor,
const char *  options = 0
[virtual]
 

Open an acceptor with the given protocol version on a default endpoint

Implements TAO_Acceptor.

int TAO_IIOP_Acceptor::open_i const ACE_INET_Addr addr,
ACE_Reactor reactor
[protected, virtual]
 

Implement the common part of the open*() methods. This method is virtual to allow a derived class implementation to be invoked instead.

int TAO_IIOP_Acceptor::parse_options const char *  options  )  [protected]
 

Parse protocol specific options.

Currently supported: portspan -- specifies the range of ports over which the acceptor should scan looking for a free port (this is convenient for situations where you might normally use an ephemeral port but can't because you're behind a firewall and don't want to permit passage on all ephemeral ports)

int TAO_IIOP_Acceptor::parse_options_i int &  argc,
ACE_CString **  argv
[protected, virtual]
 

Parse options splits the options list in to an argv array. This allows manipulation of the list in a manner similar to orb_init. By moving the consumed args to the tail of the list and reducing the argc count, the base parse_options_i can be called by derived parse_options_i. Method returns -1 if an ill-formed or otherwise bogus arg is encountered. The only strictly bogus arg was priority, which was a holdover from the early RT IIOP implementations. an ill-formed option is one which is missing an equal sign or something to the left of it.

int TAO_IIOP_Acceptor::probe_interfaces TAO_ORB_Core orb_core  )  [protected]
 

Probe the system for available network interfaces, and initialize the <addrs_> array with an ACE_INET_Addr for each network interface. The port for each initialized ACE_INET_Addr will be set in the open_i() method. This method only gets invoked when no explicit hostname is provided in the specified endpoint.


Member Data Documentation

ACCEPT_STRATEGY* TAO_IIOP_Acceptor::accept_strategy_ [private]
 

ACE_INET_Addr* TAO_IIOP_Acceptor::addrs_ [protected]
 

Array of ACE_INET_Addr instances, each one corresponding to a given network interface.

BASE_ACCEPTOR TAO_IIOP_Acceptor::base_acceptor_ [private]
 

the concrete acceptor, as a pointer to it's base class.

CONCURRENCY_STRATEGY* TAO_IIOP_Acceptor::concurrency_strategy_ [private]
 

CREATION_STRATEGY* TAO_IIOP_Acceptor::creation_strategy_ [private]
 

Acceptor strategies.

CORBA::ULong TAO_IIOP_Acceptor::endpoint_count_ [protected]
 

The number of host names cached in the hosts_ array (equivalent to the number of endpoints opened by this Acceptor).

char* TAO_IIOP_Acceptor::hostname_in_ior_ [protected]
 

Override the hostname used in the ORBEndPoint.

char** TAO_IIOP_Acceptor::hosts_ [protected]
 

Cache the information about the endpoints serviced by this acceptor. There may in fact be multiple hostnames for this endpoint. For example, if the IP address is INADDR_ANY (0.0.0.0) then there will be possibly a different hostname for each interface.

const bool TAO_IIOP_Acceptor::lite_flag_ [protected]
 

Should we use GIOP lite??

TAO_ORB_Core* TAO_IIOP_Acceptor::orb_core_ [protected]
 

ORB Core.

unsigned short TAO_IIOP_Acceptor::port_span_ [protected]
 

The number of ports over which the acceptor should search (starting at the port specified in each element of addrs_) for an available port. This is specified via the "portspan=" option to the endpoint.

int TAO_IIOP_Acceptor::reuse_addr_ [protected]
 

Enable socket optiosn SO_REUSEADDR to be set.

TAO_GIOP_Message_Version TAO_IIOP_Acceptor::version_ [protected]
 

The GIOP version for this endpoint @ Theoretically they shouldn't be here!! We need to look at a way to move this out


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:02:42 2005 for TAO by  doxygen 1.4.5