EC_ConsumerAdmin.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file   EC_ConsumerAdmin.h
00005  *
00006  *  $Id: EC_ConsumerAdmin.h 77001 2007-02-12 07:54:49Z johnnyw $
00007  *
00008  *  @author Carlos O'Ryan (coryan@cs.wustl.edu)
00009  *
00010  * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and
00011  * other members of the DOC group. More details can be found in:
00012  *
00013  * http://doc.ece.uci.edu/~coryan/EC/index.html
00014  */
00015 
00016 #ifndef TAO_EC_CONSUMERADMIN_H
00017 #define TAO_EC_CONSUMERADMIN_H
00018 
00019 #include /**/ "ace/pre.h"
00020 
00021 #include "orbsvcs/Event/EC_ProxySupplier.h"
00022 
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif /* ACE_LACKS_PRAGMA_ONCE */
00026 
00027 #include "orbsvcs/ESF/ESF_Peer_Admin.h"
00028 
00029 #include /**/ "orbsvcs/Event/event_serv_export.h"
00030 
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032 
00033 class TAO_EC_Event_Channel_Base;
00034 class TAO_EC_ProxyPushConsumer;
00035 
00036 /**
00037  * @class TAO_EC_ConsumerAdmin
00038  *
00039  * @brief Implements the ConsumerAdmin interface, i.e. the factory for
00040  * TAO_EC_ProxyPushSupplier objects.
00041  *
00042  * <H2> Memory Management</H2>
00043  * It does not assume ownership of the TAO_EC_Event_Channel_Base object;
00044  * but it *does* assume ownership of the TAO_EC_ProxyPushSupplier_Set
00045  * object.
00046  *
00047  * <H2>Locking</H2>
00048  * No provisions for locking, access must be serialized externally.
00049  */
00050 class TAO_RTEvent_Serv_Export TAO_EC_ConsumerAdmin
00051   : public POA_RtecEventChannelAdmin::ConsumerAdmin
00052   , public TAO_ESF_Peer_Admin<TAO_EC_Event_Channel_Base,TAO_EC_ProxyPushSupplier,RtecEventChannelAdmin::ProxyPushSupplier,TAO_EC_ProxyPushConsumer>
00053 {
00054 public:
00055   /**
00056    * Constructor. Builds one using the @a event_channel argument.
00057    * In any case it assumes ownership.
00058    */
00059   TAO_EC_ConsumerAdmin (TAO_EC_Event_Channel_Base* event_channel);
00060 
00061   /// Destructor...
00062   virtual ~TAO_EC_ConsumerAdmin (void);
00063 
00064   // = The RtecEventChannelAdmin::ConsumerAdmin methods...
00065   virtual RtecEventChannelAdmin::ProxyPushSupplier_ptr
00066       obtain_push_supplier (void);
00067 
00068   // = The PortableServer::ServantBase methods
00069   virtual PortableServer::POA_ptr _default_POA (void);
00070 
00071 private:
00072   /// Store the default POA.
00073   PortableServer::POA_var default_POA_;
00074 };
00075 
00076 TAO_END_VERSIONED_NAMESPACE_DECL
00077 
00078 #include /**/ "ace/post.h"
00079 
00080 #endif /* TAO_EC_CONSUMERADMIN_H */

Generated on Tue Feb 2 17:44:05 2010 for TAO_RTEvent by  doxygen 1.4.7