00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file CEC_DynamicImplementation.h 00006 * 00007 * $Id: CEC_DynamicImplementation.h 77001 2007-02-12 07:54:49Z johnnyw $ 00008 * 00009 * @author Jon Astle (jon@astle45.fsnet.co.uk) 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_CEC_DYNAMICIMPLEMENTATION_H 00015 #define TAO_CEC_DYNAMICIMPLEMENTATION_H 00016 00017 #include "orbsvcs/CosEvent/CEC_TypedProxyPushConsumer.h" 00018 #include "orbsvcs/CosEvent/CEC_TypedEventChannel.h" 00019 #include "tao/DynamicInterface/Server_Request.h" 00020 #include "tao/DynamicInterface/Dynamic_Implementation.h" 00021 #include "tao/ORB.h" 00022 00023 00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00025 00026 class TAO_CEC_DynamicImplementationServer : public TAO_DynamicImplementation 00027 { 00028 // = TITLE 00029 // DSI TAO_CEC_DynamicImplementationServer implementation 00030 // 00031 // = DESCRIPTION 00032 // Implements the DSI impl object 00033 // 00034 public: 00035 00036 // Constructure 00037 TAO_CEC_DynamicImplementationServer (PortableServer::POA_ptr poa, 00038 TAO_CEC_TypedProxyPushConsumer *typed_pp_consumer, 00039 TAO_CEC_TypedEventChannel *typed_event_channel); 00040 00041 //Destructor 00042 virtual ~TAO_CEC_DynamicImplementationServer (void); 00043 00044 // = The DynamicImplementation methods. 00045 virtual void invoke (CORBA::ServerRequest_ptr request); 00046 00047 virtual CORBA::RepositoryId _primary_interface ( 00048 const PortableServer::ObjectId &oid, 00049 PortableServer::POA_ptr poa); 00050 00051 virtual PortableServer::POA_ptr _default_POA (void); 00052 00053 // Handles the _is_a call 00054 virtual void is_a (CORBA::ServerRequest_ptr request); 00055 00056 private: 00057 // The POA 00058 PortableServer::POA_var poa_; 00059 00060 // The Typed Proxy Push Consumer Implementation 00061 TAO_CEC_TypedProxyPushConsumer *typed_pp_consumer_; 00062 00063 // The Typed Event Channel Implementation 00064 TAO_CEC_TypedEventChannel *typed_event_channel_; 00065 00066 // The RepositoryId 00067 CORBA::RepositoryId repository_id_; 00068 }; 00069 00070 TAO_END_VERSIONED_NAMESPACE_DECL 00071 00072 #if defined(__ACE_INLINE__) 00073 #include "orbsvcs/CosEvent/CEC_DynamicImplementation.inl" 00074 #endif /* __ACE_INLINE__ */ 00075 00076 #endif /* TAO_CEC_DYNAMICIMPLEMENTATION_H */