Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_ECG_UDP_Sender Class Reference

Send events received from a "local" EC using UDP. NOT THREAD-SAFE. This class connect as a consumer to an EventChannel and forwards the events it receives from that EC using UDP. More...

`#include <ECG_UDP_Sender.h>`

Inheritance diagram for TAO_ECG_UDP_Sender:

[legend]
Collaboration diagram for TAO_ECG_UDP_Sender:

[legend]
List of all members.

## [NOHEADER]
| ~TAO_ECG_UDP_Sender (void)
void | init (RtecEventChannelAdmin::EventChannel_ptr lcl_ec, RtecUDPAdmin::AddrServer_ptr addr_server, TAO_ECG_Refcounted_Endpoint endpoint_rptr ACE_ENV_ARG_DECL)
void | connect (const RtecEventChannelAdmin::ConsumerQOS &sub ACE_ENV_ARG_DECL)
| Connect or reconnect to the EC with the given subscriptions.
void | shutdown (ACE_ENV_SINGLE_ARG_DECL)
TAO_EC_Servant_Var< TAO_ECG_UDP_Sender > | create (CORBA::Boolean crc=0)
## Public Methods
int | mtu (CORBA::ULong mtu)
CORBA::ULong | mtu (void) const
int | get_local_addr (ACE_INET_Addr &addr)
| Get the local endpoint used to send the events.
virtual void | disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
virtual void | push (const RtecEventComm::EventSet &events ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
## Protected Methods
| TAO_ECG_UDP_Sender (CORBA::Boolean crc=0)
## Private Types
typedef TAO_EC_Auto_Command< TAO_ECG_UDP_Sender_Disconnect_Command > | ECG_Sender_Auto_Proxy_Disconnect
## Private Methods
void | new_connect (const RtecEventChannelAdmin::ConsumerQOS &sub ACE_ENV_ARG_DECL)
void | reconnect (const RtecEventChannelAdmin::ConsumerQOS &sub ACE_ENV_ARG_DECL)
## Private Attributes
RtecEventChannelAdmin::ProxyPushSupplier_var | supplier_proxy_
| Proxy used to receive events from the Event Channel.
RtecEventChannelAdmin::EventChannel_var | lcl_ec_
| Event Channel to which we act as a consumer.
RtecUDPAdmin::AddrServer_var | addr_server_
| We query this object to determine where the events should be sent.
TAO_ECG_CDR_Message_Sender | cdr_sender_
| Helper for fragmenting and sending cdr-encoded events using udp.
ECG_Sender_Auto_Proxy_Disconnect | auto_proxy_disconnect_
| Manages our connection to Supplier Proxy.

## Detailed Description

Send events received from a "local" EC using UDP. NOT THREAD-SAFE. This class connect as a consumer to an EventChannel and forwards the events it receives from that EC using UDP.

## Member Typedef Documentation

typedef TAO_EC_Auto_Command<TAO_ECG_UDP_Sender_Disconnect_Command> TAO_ECG_UDP_Sender::ECG_Sender_Auto_Proxy_Disconnect`[private]`

## Constructor & Destructor Documentation

TAO_ECG_UDP_Sender::~TAO_ECG_UDP_Sender | ( | void |  | ) |

TAO_ECG_UDP_Sender::TAO_ECG_UDP_Sender | ( | CORBA::Boolean | crc = 0 | ) | `[protected]`

| Constructor (protected). Clients can create new TAO_ECG_UDP_Sender objects using the static create() method.

## Member Function Documentation

void TAO_ECG_UDP_Sender::connect | ( | const RtecEventChannelAdmin::ConsumerQOS &sub | ACE_ENV_ARG_DECL | ) |

| Connect or reconnect to the EC with the given subscriptions. NOTE: if we are already connected to EC and a reconnection is necessary, the EC must have reconnects enabled in order for this method to succeed.

TAO_EC_Servant_Var<TAO_ECG_UDP_Sender> TAO_ECG_UDP_Sender::create | ( | CORBA::Boolean | crc = 0 | ) | `[static]`

| Create a new TAO_ECG_UDP_Sender object. (Constructor access is restricted to insure that all TAO_ECG_UDP_Sender objects are heap-allocated.)

void TAO_ECG_UDP_Sender::disconnect_push_consumer | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)`[virtual]`

| Invokes shutdown (), which may result in the object being deleted, if refcounting is used to manage its lifetime.

int TAO_ECG_UDP_Sender::get_local_addr | ( | ACE_INET_Addr & | addr | ) |

| Get the local endpoint used to send the events.

void TAO_ECG_UDP_Sender::init | ( | RtecEventChannelAdmin::EventChannel_ptr | lcl_ec,
|  | RtecUDPAdmin::AddrServer_ptr | addr_server,
|  | TAO_ECG_Refcounted_Endpoint endpoint_rptr | ACE_ENV_ARG_DECL
| ) |

  | Parameters:
  lcl_ec | Event Channel to which we will act as a consumer of events.
  addr_server | Address server used to obtain event type to multicast group mapping.
  endpoint_rptr | Endpoint for sending udp/multicast messages. Endpoint's dgram must be open!
To insure proper resource clean up, if init () is successful, shutdown () must be called when the sender is no longer needed. This is done by disconnect_push_consumer() method. If disconnect_push_consumer() will not be called, it is the responsibility of the user. Furthermore, if shutdown() is not explicitly called by either disconnect_push_consumer () or the user, the sender will clean up the resources in its destructor, however, certain entities involved in cleanup must still exist at that point, e.g., POA.

CORBA::ULong TAO_ECG_UDP_Sender::mtu | ( | void |  | ) | const

| The sender may need to fragment the message, otherwise the network may drop the packets. Setting the MTU can fail if the value is too small (at least the header + 8 bytes must fit).

int TAO_ECG_UDP_Sender::mtu | ( | CORBA::ULong | mtu | ) |

| The sender may need to fragment the message, otherwise the network may drop the packets. Setting the MTU can fail if the value is too small (at least the header + 8 bytes must fit).

void TAO_ECG_UDP_Sender::new_connect | ( | const RtecEventChannelAdmin::ConsumerQOS &sub | ACE_ENV_ARG_DECL | ) | `[private]`

void TAO_ECG_UDP_Sender::push | ( | const RtecEventComm::EventSet &events | ACE_ENV_ARG_DECL | ) | throw (CORBA::SystemException)`[virtual]`

| Invokes shutdown (), which may result in the object being deleted, if refcounting is used to manage its lifetime.

void TAO_ECG_UDP_Sender::reconnect | ( | const RtecEventChannelAdmin::ConsumerQOS &sub | ACE_ENV_ARG_DECL | ) | `[private]`

void TAO_ECG_UDP_Sender::shutdown | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) |

| Calling this method may result in decrementing of the reference count (due to deactivation) and deletion of the object.

## Member Data Documentation

RtecUDPAdmin::AddrServer_var TAO_ECG_UDP_Sender::addr_server_`[private]`

| We query this object to determine where the events should be sent.

ECG_Sender_Auto_Proxy_Disconnect TAO_ECG_UDP_Sender::auto_proxy_disconnect_`[private]`

| Manages our connection to Supplier Proxy.

TAO_ECG_CDR_Message_Sender TAO_ECG_UDP_Sender::cdr_sender_`[private]`

| Helper for fragmenting and sending cdr-encoded events using udp.

RtecEventChannelAdmin::EventChannel_var TAO_ECG_UDP_Sender::lcl_ec_`[private]`

| Event Channel to which we act as a consumer.

RtecEventChannelAdmin::ProxyPushSupplier_var TAO_ECG_UDP_Sender::supplier_proxy_`[private]`

| Proxy used to receive events from the Event Channel.

The documentation for this class was generated from the following files:

- ECG_UDP_Sender.h
- ECG_UDP_Sender.cpp