00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00036 #ifndef OW_CIMPROTOCOL_HPP_INCLUDE_GUARD_
00037 #define OW_CIMPROTOCOL_HPP_INCLUDE_GUARD_
00038 #include "OW_config.h"
00039 #include "OW_Exception.hpp"
00040 #include "OW_CIMFeatures.hpp"
00041 #include "OW_IntrusiveReference.hpp"
00042 #include "OW_IntrusiveCountableBase.hpp"
00043 #include "OW_ClientAuthCBIFC.hpp"
00044 #include "OW_SocketAddress.hpp"
00045 #include "OW_CIMProtocolIStreamIFC.hpp"
00046 #include "OW_Reference.hpp"
00047 #include "OW_IfcsFwd.hpp"
00048 #include <iosfwd>
00049
00050
00051
00052
00053 namespace OW_NAMESPACE
00054 {
00055
00056 OW_DECLARE_APIEXCEPTION(CIMProtocol, OW_COMMON_API);
00057 class OW_COMMON_API CIMProtocolIFC : public IntrusiveCountableBase
00058 {
00059 public:
00060 virtual ~CIMProtocolIFC();
00061 virtual Reference<std::iostream> beginRequest(
00062 const String& methodName, const String& nameSpace) = 0;
00063
00068 enum ERequestType
00069 {
00070 E_CIM_OPERATION_REQUEST,
00071 E_CIM_EXPORT_REQUEST,
00072 E_CIM_BATCH_OPERATION_REQUEST,
00073 E_CIM_BATCH_EXPORT_REQUEST,
00074 E_CIM_OPERATION_RESPONSE,
00075 E_CIM_EXPORT_RESPONSE
00076 };
00097 virtual CIMProtocolIStreamIFCRef endRequest(
00098 const Reference<std::iostream>& request,
00099 const String& methodName,
00100 const String& cimObject,
00101 ERequestType requestType,
00102 const String& cimProtocolVersion) = 0;
00107 virtual CIMFeatures getFeatures() = 0;
00108
00114 void setLoginCallBack(const ClientAuthCBIFCRef& loginCB)
00115 { m_loginCB = loginCB; }
00116 void setContentType(const String& ct)
00117 { m_contentType = ct; }
00122 virtual SocketAddress getLocalAddress() const = 0;
00127 virtual SocketAddress getPeerAddress() const = 0;
00128
00133 virtual void close() = 0;
00134
00135 static const int INFINITE_TIMEOUT = -1;
00140 virtual void setReceiveTimeout(int seconds) = 0;
00145 virtual int getReceiveTimeout() const = 0;
00150 virtual void setSendTimeout(int seconds) = 0;
00155 virtual int getSendTimeout() const = 0;
00160 virtual void setConnectTimeout(int seconds) = 0;
00165 virtual int getConnectTimeout() const = 0;
00170 virtual void setTimeouts(int seconds) = 0;
00171
00172 protected:
00173
00174 #ifdef OW_WIN32
00175 #pragma warning (push)
00176 #pragma warning (disable: 4251)
00177 #endif
00178
00179 ClientAuthCBIFCRef m_loginCB;
00180
00181 #ifdef OW_WIN32
00182 #pragma warning (pop)
00183 #endif
00184
00185 String m_contentType;
00186 };
00187
00188 }
00189
00190 #endif