Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Examples  

IMessageData.h

00001 /*
00002  *   Copyright 2003-2004 The Apache Software Foundation.
00003  *
00004  *   Licensed under the Apache License, Version 2.0 (the "License");
00005  *   you may not use this file except in compliance with the License.
00006  *   You may obtain a copy of the License at
00007  *
00008  *       http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  *   Unless required by applicable law or agreed to in writing, software
00011  *   distributed under the License is distributed on an "AS IS" BASIS,
00012  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  *   See the License for the specific language governing permissions and
00014  *   limitations under the License.
00015  */
00016 
00017 #if !defined(_IMESSAGEDATA_H___OF_AXIS_INCLUDED_)
00018 #define _IMESSAGEDATA_H___OF_AXIS_INCLUDED_
00019 
00020 #ifdef __cplusplus
00021 
00022 #include "GDefine.h"
00023 
00024 AXIS_CPP_NAMESPACE_START
00025 
00026 class WSDDService;
00027 class IAdminUtils;
00028 
00029 AXIS_CPP_NAMESPACE_END
00030 
00031 #include "IHandlerSoapDeSerializer.h"
00032 #include "IHandlerSoapSerializer.h"
00033 
00034 #endif
00035 
00036 #include "IWrapperSoapDeSerializer.h"
00037 #include "IWrapperSoapSerializer.h"
00038 
00039 typedef struct 
00040 {
00041     const AxisChar* (AXISCALL* getOperationName)(void* pObj);
00042     void (AXISCALL* getSoapSerializer)(void* pObj, 
00043         IWrapperSoapSerializer_C* pIWSS);
00044     void (AXISCALL* getSoapDeSerializer)(void* pObj, 
00045         IWrapperSoapDeSerializer_C* pIWSDS);
00046 } IMessageDataFunctions;
00047 
00048 typedef struct
00049 {
00050     void* _object; /* this will be C++ MessageData Object */
00051     IMessageDataFunctions* _functions; /* this is the static function table */
00052 } IMessageData_C;
00053 
00054 #ifndef __cplusplus
00055 typedef IMessageData_C IMessageData;
00056 #else
00057 /*
00058  *   @class IMessageData
00059  *   @brief interface for the IMessageData class.
00060  *   @author Susantha Kumara (skumara@virtusa.com, susantha@opensource.lk)
00061  *   @author Roshan Weerasuriya (roshan@jkcs.slt.lk, roshan@opensource.lk)
00062  */
00063 
00064 AXIS_CPP_NAMESPACE_START
00065 
00066 class IMessageData
00067 {
00068     /* Allow AxisAdminService access to the private methods */
00069     friend class AxisAdminServiceWrapper; 
00070 public:
00071     virtual ~IMessageData(){};
00072 private:
00073     virtual void getAdminUtils(IAdminUtils** pIAdminUtils)=0;
00074 public:      
00075         virtual int setProperty(AxisChar* pachName, const AxisChar* pachValue)=0;
00076     virtual int setProperty(AxisChar* pachName, const void* pachValue, int len)=0;
00077     virtual const void* getProperty(AxisChar* sName)=0;
00078     virtual const AxisChar* AXISCALL getOperationName()=0;
00079     virtual void AXISCALL getSoapSerializer(IWrapperSoapSerializer** pIWSS)=0;
00080     virtual void AXISCALL getSoapDeSerializer
00081         (IWrapperSoapDeSerializer** pIWSDS)=0;
00082     virtual void getSoapSerializer
00083         (IHandlerSoapSerializer** pIHandlerSoapSerializer)=0;
00084     virtual void getSoapDeSerializer
00085         (IHandlerSoapDeSerializer** pIHandlerSoapDeSerializer)=0;
00086     virtual void setUserName(string& m_sUserName)=0;
00087     virtual string& getUserName()=0;
00088     virtual void setService(const WSDDService* argService) = 0;
00089     virtual const WSDDService* getService() = 0; 
00090     virtual bool isPastPivot()=0;
00091     virtual int setPastPivotState(bool bState)=0;
00092 
00093     /* following stuff is needed to provide the interface for C web services */
00094 public:
00095     static IMessageDataFunctions ms_VFtable;
00096     static const AxisChar* AXISCALL s_GetOperationName(void* pObj) 
00097     { return ((IMessageData*)pObj)->getOperationName();};
00098     static void AXISCALL s_GetSoapSerializer(void* pObj, 
00099         IWrapperSoapSerializer_C* pIWSS)
00100     { ((IMessageData*)pObj)->getSoapSerializer
00101     ((IWrapperSoapSerializer**)&(pIWSS->_object)); 
00102     pIWSS->_functions = &(IWrapperSoapSerializer::ms_VFtable);};
00103     static void AXISCALL s_GetSoapDeSerializer(void* pObj, 
00104         IWrapperSoapDeSerializer_C* pIWSDS)
00105     { ((IMessageData*)pObj)->getSoapDeSerializer
00106     ((IWrapperSoapDeSerializer**)&(pIWSDS->_object)); 
00107     pIWSDS->_functions = &(IWrapperSoapDeSerializer::ms_VFtable);};
00108     static void s_Initialize()
00109     {
00110         ms_VFtable.getOperationName = s_GetOperationName;
00111         ms_VFtable.getSoapSerializer = s_GetSoapSerializer;
00112         ms_VFtable.getSoapDeSerializer = s_GetSoapDeSerializer;
00113     }
00114 };
00115 
00116 AXIS_CPP_NAMESPACE_END
00117 
00118 #endif
00119 
00120 #endif 
00121 
00122 
00123 
00124 
00125 
00126 

Generated on Wed Aug 18 11:42:23 2004 for AxisC++ by doxygen1.2.18