Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

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

Generated on Wed Mar 22 12:23:16 2006 for Artix by  doxygen 1.3.9.1