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

# ECG_UDP_Sender.h File Reference

`#include "orbsvcs/RtecUDPAdminS.h"`
`#include "orbsvcs/RtecEventChannelAdminS.h"`
`#include "EC_Lifetime_Utils.h"`
`#include "EC_Lifetime_Utils_T.h"`
`#include "ECG_CDR_Message_Sender.h"`

Include dependency graph for ECG_UDP_Sender.h:

This graph shows which files directly or indirectly include this file:

## Compounds
class | TAO_ECG_UDP_Sender
| 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...
class | TAO_ECG_UDP_Sender_Disconnect_Command
| Disconnects consumer represented by proxy from the Event Channel. More...

## Detailed Description

Id:
  ECG_UDP_Sender.h,v 1.7 2003/07/25 14:07:38 jwillemsen Exp

Author:
  Carlos O'Ryan (coryan@cs.wustl.edu) , Marina Spivak (marina@atdesk.com)

Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and other members of the DOC group. More details can be found in:

http://doc.ece.uci.edu/~coryan/EC/index.html

Define helper classes to propagate events between ECs using either UDP or multicast. The architecture is a bit complicated and deserves some explanation: sending the events over UDP (or mcast) is easy, a Consumer (TAO_ECG_UDP_Sender) subscribes for a certain set of events, its push() method marshalls the event set into a CDR stream that is sent using an ACE_SOCK_Dgram. The subscription set and IP address can be configured. Another helper class (TAO_ECG_UDP_Receiver) acts as a supplier of events; it receives a callback when an event is available on an ACE_SOCK_Dgram, it demarshalls the event and pushes it to the EC. Two ACE_Event_Handler classes are provided that can forward the events to this Supplier: TAO_ECG_Mcast_EH can receive events from a multicast group; TAO_ECG_UDP_EH can receive events from a regular UDP socket.

Todo:
  The class makes an extra copy of the events, we need to investigate if closer collaboration with its collocated EC could be used to remove that copy.