StructuredEvent.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /**
00003  *  @file StructuredEvent.h
00004  *
00005  *  StructuredEvent.h,v 1.14 2006/03/15 21:29:10 jtc Exp
00006  *
00007  *  @author Pradeep Gore <pradeep@oomworks.com>
00008  *
00009  *
00010  */
00011 #ifndef TAO_Notify_STRUCTUREDEVENT_H
00012 #define TAO_Notify_STRUCTUREDEVENT_H
00013 
00014 #include /**/ "ace/pre.h"
00015 #include "orbsvcs/Notify/notify_serv_export.h"
00016 
00017 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00018 # pragma once
00019 #endif /* ACE_LACKS_PRAGMA_ONCE */
00020 
00021 #include "orbsvcs/Notify/Event.h"
00022 #include "orbsvcs/Notify/EventType.h"
00023 #include "orbsvcs/CosNotificationC.h"
00024 
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026 
00027 class TAO_Notify_StructuredEvent;
00028 
00029 /**
00030  * @class TAO_Notify_StructuredEvent_No_Copy
00031  *
00032  * @brief StructuredEvent implementation.
00033  *
00034  */
00035 
00036 class TAO_Notify_Serv_Export TAO_Notify_StructuredEvent_No_Copy : public TAO_Notify_Event
00037 {
00038 public:
00039   /// Constuctor
00040   TAO_Notify_StructuredEvent_No_Copy (const CosNotification::StructuredEvent& notification);
00041 
00042   /// Destructor
00043   virtual ~TAO_Notify_StructuredEvent_No_Copy ();
00044 
00045   /// marshal this event into a CDR buffer (for persistence)
00046   virtual void marshal (TAO_OutputCDR & cdr) const;
00047 
00048   CORBA::Boolean do_match (CosNotifyFilter::Filter_ptr filter ACE_ENV_ARG_DECL) const;
00049 
00050   /// Convert to CosNotification::Structured type
00051   virtual void convert (CosNotification::StructuredEvent& notification) const;
00052 
00053   /// Get the event type.
00054   virtual const TAO_Notify_EventType& type (void) const;
00055 
00056   /// Push event to consumer
00057   virtual void push (TAO_Notify_Consumer* consumer ACE_ENV_ARG_DECL) const;
00058 
00059   /// Push event to the Event_Forwarder interface
00060   virtual void push (Event_Forwarder::StructuredProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) const;
00061 
00062   /// Push event to the Event_Forwarder interface
00063   virtual void push_no_filtering (Event_Forwarder::StructuredProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) const;
00064 
00065   /// Push event to the Event_Forwarder interface
00066   virtual void push (Event_Forwarder::ProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) const;
00067 
00068   /// Push event to the Event_Forwarder interface
00069   virtual void push_no_filtering (Event_Forwarder::ProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) const;
00070 
00071   /// unmarshal this event from a CDR buffer (for persistence)
00072   /// \return the new event, or NULL if this is the wrong type of event.
00073   static TAO_Notify_StructuredEvent * unmarshal (TAO_InputCDR & cdr);
00074 
00075 protected:
00076   /// returns a copy of this event allocated on the heap
00077   virtual TAO_Notify_Event * copy (ACE_ENV_SINGLE_ARG_DECL) const;
00078 
00079   /// Structured Event
00080   const CosNotification::StructuredEvent* notification_;
00081 
00082   /// Our type.
00083   const TAO_Notify_EventType type_;
00084 };
00085 
00086 /*****************************************************************************/
00087 
00088 /**
00089  * @class TAO_Notify_StructuredEvent
00090  *
00091  * @brief StructuredEvent implementation.
00092  *
00093  */
00094 class TAO_Notify_Serv_Export TAO_Notify_StructuredEvent : public TAO_Notify_StructuredEvent_No_Copy
00095 {
00096 public:
00097   /// Constuctor
00098   TAO_Notify_StructuredEvent (const CosNotification::StructuredEvent& notification);
00099 
00100   /// Destructor
00101   virtual ~TAO_Notify_StructuredEvent ();
00102 
00103 
00104 protected:
00105   /// Copy of the Event.
00106   CosNotification::StructuredEvent notification_copy;
00107 };
00108 
00109 TAO_END_VERSIONED_NAMESPACE_DECL
00110 
00111 #include /**/ "ace/post.h"
00112 #endif /* TAO_Notify_STRUCTUREDEVENT_H */

Generated on Thu Nov 9 13:24:17 2006 for TAO_CosNotification by doxygen 1.3.6