00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file CEC_DynamicImplementation.h 00006 * 00007 * CEC_DynamicImplementation.h,v 1.4 2006/03/14 06:14:24 jtc Exp 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 ACE_ENV_ARG_DECL) 00047 ACE_THROW_SPEC ((CORBA::SystemException)); 00048 00049 virtual CORBA::RepositoryId _primary_interface ( 00050 const PortableServer::ObjectId &oid, 00051 PortableServer::POA_ptr poa 00052 ACE_ENV_ARG_DECL 00053 ) 00054 ACE_THROW_SPEC (()); 00055 00056 virtual PortableServer::POA_ptr _default_POA ( 00057 ACE_ENV_SINGLE_ARG_DECL 00058 ); 00059 00060 // Handles the _is_a call 00061 virtual void is_a (CORBA::ServerRequest_ptr request 00062 ACE_ENV_ARG_DECL); 00063 00064 private: 00065 // The POA 00066 PortableServer::POA_var poa_; 00067 00068 // The Typed Proxy Push Consumer Implementation 00069 TAO_CEC_TypedProxyPushConsumer *typed_pp_consumer_; 00070 00071 // The Typed Event Channel Implementation 00072 TAO_CEC_TypedEventChannel *typed_event_channel_; 00073 00074 // The RepositoryId 00075 CORBA::RepositoryId repository_id_; 00076 }; 00077 00078 TAO_END_VERSIONED_NAMESPACE_DECL 00079 00080 #if defined(__ACE_INLINE__) 00081 #include "orbsvcs/CosEvent/CEC_DynamicImplementation.i" 00082 #endif /* __ACE_INLINE__ */ 00083 00084 #endif /* TAO_CEC_DYNAMICIMPLEMENTATION_H */