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 */