it_bus_pdk/pdk_client_service.h

00001 #ifndef _IT_BUS_PDK_CLIENT_SERVICE_H_
00002 #define _IT_BUS_PDK_CLIENT_SERVICE_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #ifndef IT_MINIMISE_INCLUDES
00008 #include <it_bus/bus.h>
00009 #endif
00010 
00011 #include <it_bus/bus_type_alias.h>
00012 #include <it_bus/client_service.h>
00013 #include <it_ts/mutex.h>
00014 #include <it_ts/condition.h>
00015 #include <it_cal/auto_ptr.h>
00016 
00017 
00018 namespace IT_Bus {
00019      
00020     class ServiceHelper; 
00021     
00022     class IT_BUS_API PDKClientService : public ClientService
00023     {
00024       
00025       public :
00026         
00027         PDKClientService(
00028             Bus_ptr                     bus,
00029             const IT_WSDL::WSDLService& wsdl_service
00030         ) IT_THROW_DECL((ServiceException));
00031         
00032         virtual ~PDKClientService();
00033 
00034         // ServiceBase interface
00035 
00036         virtual Reference&
00037         get_reference();
00038 
00039         virtual const Reference&
00040         get_reference() const;
00041 
00042         virtual void
00043         get_endpoint_reference(
00044             WS_Addressing::EndpointReferenceType &
00045         );
00046         
00047         virtual Port*
00048         get_port(
00049             const IT_WSDL::WSDLPort& wsdl_port
00050         ) IT_THROW_DECL((ServiceException));
00051 
00052         virtual const IT_WSDL::WSDLDefinitions&
00053         get_wsdl_definitions() const;
00054 
00055         virtual const QName&
00056         get_name() const;
00057 
00058         virtual const IT_WSDL::WSDLService&
00059         get_wsdl_service() const;
00060         
00061         virtual void 
00062         activate();
00063                   
00064         virtual void 
00065         deactivate();
00066 
00067         virtual void
00068         wait();
00069 
00070         // ClientService interface
00071                         
00072         virtual void
00073         invoke(
00074             ClientOperation& client_operation
00075         );
00076 
00077         virtual Logging::ServiceNameRetriever*
00078         get_snr();
00079 
00080       protected :
00081 
00082         void
00083         start_operation();
00084 
00085         void
00086         stop_operation();
00087    
00088 
00089       private:
00090         PDKClientService& operator=(const PDKClientService& rhs);
00091         PDKClientService(const PDKClientService& rhs);
00092 
00093         Logging::ServiceNameRetriever*   m_snr;
00094         IT_AutoPtr<ServiceHelper>        m_helper;
00095         Boolean                          m_deactivated;  
00096         Int                              m_op_counter; 
00097         IT_Condition                     m_op_completed;
00098         IT_Mutex                         m_op_mutex;
00099         
00100     };
00101     
00102 }
00103 
00104 #endif  

Generated on Thu Sep 7 11:39:35 2006 for Artix by  doxygen 1.4.7