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 "WSDDService.h"
00023 #include "IAdminUtils.h"
00024 
00025 #include <string>
00026 using namespace std;
00027 
00028 #include "IHandlerSoapDeSerializer.h"
00029 #include "IHandlerSoapSerializer.h"
00030 class IDeployerUtils;
00031 #endif
00032 
00033 #include "IWrapperSoapDeSerializer.h"
00034 #include "IWrapperSoapSerializer.h"
00035 
00036 typedef struct 
00037 {
00038     const AxisChar* (AXISCALL* getOperationName)(void* pObj);
00039     void (AXISCALL* getSoapSerializer)(void* pObj, 
00040         IWrapperSoapSerializer_C* pIWSS);
00041     void (AXISCALL* getSoapDeSerializer)(void* pObj, 
00042         IWrapperSoapDeSerializer_C* pIWSDS);
00043 } IMessageDataFunctions;
00044 
00045 typedef struct
00046 {
00047     void* _object; /* this will be C++ MessageData Object */
00048     IMessageDataFunctions* _functions; /* this is the static function table */
00049 } IMessageData_C;
00050 
00051 #ifndef __cplusplus
00052 typedef IMessageData_C IMessageData;
00053 #else
00054 /*
00055  *   @class IMessageData
00056  *   @brief interface for the IMessageData class.
00057  *   @author Susantha Kumara (skumara@virtusa.com, susantha@opensource.lk)
00058  *   @author Roshan Weerasuriya (roshan@jkcs.slt.lk, roshan@opensource.lk)
00059  */
00060 class IMessageData
00061 {
00062     /* Allow AxisAdminService access to the private methods */
00063     friend class AxisAdminServiceWrapper; 
00064 public:
00065     virtual ~IMessageData(){};
00066 private:
00067     virtual void getAdminUtils(IAdminUtils** pIAdminUtils)=0;
00068 public:
00069     virtual int setProperty(AxisChar* pachName, const AxisChar* pachValue)=0;
00070     virtual const AxisChar* getProperty(AxisChar* sName)=0;
00071     virtual const AxisChar* AXISCALL getOperationName()=0;
00072     virtual void AXISCALL getSoapSerializer(IWrapperSoapSerializer** pIWSS)=0;
00073     virtual void AXISCALL getSoapDeSerializer
00074         (IWrapperSoapDeSerializer** pIWSDS)=0;
00075     virtual void getSoapSerializer
00076         (IHandlerSoapSerializer** pIHandlerSoapSerializer)=0;
00077     virtual void getSoapDeSerializer
00078         (IHandlerSoapDeSerializer** pIHandlerSoapDeSerializer)=0;
00079     virtual void setUserName(string& m_sUserName)=0;
00080     virtual string& getUserName()=0;
00081     virtual void setService(const WSDDService* argService) = 0;
00082     virtual const WSDDService* getService() = 0; 
00083     virtual bool isPastPivot()=0;
00084     virtual int setPastPivotState(bool bState)=0;
00085 
00086     /* following stuff is needed to provide the interface for C web services */
00087 public:
00088     static IMessageDataFunctions ms_VFtable;
00089     static const AxisChar* AXISCALL s_GetOperationName(void* pObj) 
00090     { return ((IMessageData*)pObj)->getOperationName();};
00091     static void AXISCALL s_GetSoapSerializer(void* pObj, 
00092         IWrapperSoapSerializer_C* pIWSS)
00093     { ((IMessageData*)pObj)->getSoapSerializer
00094     ((IWrapperSoapSerializer**)&(pIWSS->_object)); 
00095     pIWSS->_functions = &(IWrapperSoapSerializer::ms_VFtable);};
00096     static void AXISCALL s_GetSoapDeSerializer(void* pObj, 
00097         IWrapperSoapDeSerializer_C* pIWSDS)
00098     { ((IMessageData*)pObj)->getSoapDeSerializer
00099     ((IWrapperSoapDeSerializer**)&(pIWSDS->_object)); 
00100     pIWSDS->_functions = &(IWrapperSoapDeSerializer::ms_VFtable);};
00101     static void s_Initialize()
00102     {
00103         ms_VFtable.getOperationName = s_GetOperationName;
00104         ms_VFtable.getSoapSerializer = s_GetSoapSerializer;
00105         ms_VFtable.getSoapDeSerializer = s_GetSoapDeSerializer;
00106     }
00107 };
00108 
00109 #endif
00110 
00111 #endif 
00112 
00113 
00114 
00115 
00116 
00117 

Generated on Tue Jun 29 09:27:56 2004 for AxisC++ by doxygen1.2.18