#include <RT_Policy_i.h>
Static Public Member Functions | |
| static RTCORBA::ProtocolProperties * | create_transport_protocol_property (IOP::ProfileId id, TAO_ORB_Core *orb_core) |
| static RTCORBA::ProtocolProperties * | create_orb_protocol_property (IOP::ProfileId id) |
Private Member Functions | |
| TAO_Protocol_Properties_Factory (void) | |
Definition at line 780 of file RT_Policy_i.h.
| TAO_Protocol_Properties_Factory::TAO_Protocol_Properties_Factory | ( | void | ) | [private] |
| RTCORBA::ProtocolProperties * TAO_Protocol_Properties_Factory::create_orb_protocol_property | ( | IOP::ProfileId | id | ) | [static] |
Creates the proper orb ProtocolProperties subclass for IOP::ProfileId. NOTE: Each IOP::ProfileId corresponds to two sets of protocol properties: one describes the transport protocol and the other describes the ORB messaging protocol.
Definition at line 1290 of file RT_Policy_i.cpp.
{
RTCORBA::ProtocolProperties* property = 0;
if (id == IOP::TAG_INTERNET_IOP)
ACE_NEW_RETURN (property,
TAO_GIOP_Protocol_Properties,
0);
// Right now the only supported ORB protocol is GIOP
// so we couple this with every protocol property.
// The else statement is not necessary, but it
// is here just to make clear that as soon as
// new ORB protocol are supported other case
// should be considered.
else
ACE_NEW_RETURN (property,
TAO_GIOP_Protocol_Properties,
0);
return property;
}
| RTCORBA::ProtocolProperties * TAO_Protocol_Properties_Factory::create_transport_protocol_property | ( | IOP::ProfileId | id, | |
| TAO_ORB_Core * | orb_core | |||
| ) | [static] |
Creates the proper transport ProtocolProperties subclass that matches the IOP::ProfileId. NOTE: Each IOP::ProfileId corresponds to two sets of protocol properties: one describes the transport protocol and the other describes the ORB messaging protocol.
Definition at line 1196 of file RT_Policy_i.cpp.
{
RTCORBA::ProtocolProperties* property = 0;
if (id == IOP::TAG_INTERNET_IOP)
{
int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
CORBA::Boolean keep_alive = orb_core ? orb_core->orb_params ()->sock_keepalive () : true;
CORBA::Boolean dont_route = orb_core ? orb_core->orb_params ()->sock_dontroute () : false;
CORBA::Boolean enable_network_priority = false;
ACE_NEW_RETURN (property,
TAO_TCP_Protocol_Properties (send_buffer_size,
recv_buffer_size,
keep_alive,
dont_route,
no_delay,
enable_network_priority),
0);
}
else if (id == TAO_TAG_SHMEM_PROFILE)
{
int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
CORBA::Boolean keep_alive = true;
CORBA::Boolean dont_route = false;
CORBA::Long preallocate_buffer_size = false;
const char *mmap_filename = "";
const char *mmap_lockname = "";
ACE_NEW_RETURN (property,
TAO_SharedMemory_Protocol_Properties (send_buffer_size,
recv_buffer_size,
keep_alive,
dont_route,
no_delay,
preallocate_buffer_size,
mmap_filename,
mmap_lockname),
0);
}
else if (id == TAO_TAG_UIOP_PROFILE)
{
int const send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
int const recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
ACE_NEW_RETURN (property,
TAO_UnixDomain_Protocol_Properties (send_buffer_size,
recv_buffer_size),
0);
}
else if (id == TAO_TAG_DIOP_PROFILE)
{
int const send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
int const recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
CORBA::Boolean enable_network_priority = false;
ACE_NEW_RETURN (property,
TAO_UserDatagram_Protocol_Properties (send_buffer_size,
recv_buffer_size,
enable_network_priority),
0);
}
else if (id == TAO_TAG_SCIOP_PROFILE)
{
int send_buffer_size = orb_core ? orb_core->orb_params ()->sock_sndbuf_size () : 0;
int recv_buffer_size = orb_core ? orb_core->orb_params ()->sock_rcvbuf_size () : 0;
int no_delay = orb_core ? orb_core->orb_params ()->nodelay () : 0;
CORBA::Boolean keep_alive = true;
CORBA::Boolean dont_route = false;
CORBA::Boolean enable_network_priority = false;
ACE_NEW_RETURN (property,
TAO_StreamControl_Protocol_Properties (send_buffer_size,
recv_buffer_size,
keep_alive,
dont_route,
no_delay,
enable_network_priority),
0);
}
return property;
}
1.7.0