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

Generated on Fri Jul 9 13:18:29 2004 for AxisC++ by doxygen1.2.18