EC_ConsumerAdmin.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file   EC_ConsumerAdmin.h
00005  *
00006  *  EC_ConsumerAdmin.h,v 1.39 2006/03/15 07:52:21 jtc Exp
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 (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00067           ACE_THROW_SPEC ((CORBA::SystemException));
00068 
00069   // = The PortableServer::ServantBase methods
00070   virtual PortableServer::POA_ptr _default_POA (ACE_ENV_SINGLE_ARG_DECL);
00071 
00072 private:
00073   /// Store the default POA.
00074   PortableServer::POA_var default_POA_;
00075 };
00076 
00077 TAO_END_VERSIONED_NAMESPACE_DECL
00078 
00079 #include /**/ "ace/post.h"
00080 
00081 #endif /* TAO_EC_CONSUMERADMIN_H */

Generated on Thu Nov 9 13:11:06 2006 for TAO_RTEvent by doxygen 1.3.6