TAO_RTEvent  2.1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes
ECG_UDP_Receiver.h File Reference
#include "orbsvcs/RtecUDPAdminS.h"
#include "orbsvcs/RtecEventChannelAdminS.h"
#include "orbsvcs/Event/ECG_Adapters.h"
#include "orbsvcs/Event/EC_Lifetime_Utils.h"
#include "orbsvcs/Event/EC_Lifetime_Utils_T.h"
#include "orbsvcs/Event/ECG_CDR_Message_Receiver.h"
#include "orbsvcs/Event/ECG_UDP_Receiver.inl"

Classes

class  TAO_ECG_UDP_Receiver_Disconnect_Command
 Disconnects supplier represented by proxy from the Event Channel. More...
 
class  TAO_ECG_UDP_Receiver
 Receive events from UDP or Multicast and push them to a "local" EC. NOT THREAD-SAFE. More...
 

Detailed Description

Id:
ECG_UDP_Receiver.h 92388 2010-10-28 07:57:07Z johnnyw
Author
Carlos O'Ryan (corya.nosp@m.n@cs.nosp@m..wust.nosp@m.l.ed.nosp@m.u)
Marina Spivak (marin.nosp@m.a@at.nosp@m.desk..nosp@m.com)

Based on previous work by Tim Harrison (harri.nosp@m.son@.nosp@m.cs.wu.nosp@m.stl..nosp@m.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.