00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #if !defined(_IPARAM_H____OF_AXIS_INCLUDED_)
00018 #define _IPARAM_H____OF_AXIS_INCLUDED_
00019
00020 #include "AxisUserAPI.h"
00021 #include "AxisWrapperAPI.h"
00022 #include "TypeMapping.h"
00023 #include "time.h"
00024
00025 #include <string>
00026
00027 AXIS_CPP_NAMESPACE_START
00028
00029 using namespace std;
00030
00031
00032
00033
00034
00035
00036 class ComplexObjectHandler
00037 {
00038 public:
00039 void* pObject;
00040 AXIS_SERIALIZE_FUNCT pSZFunct;
00041 AXIS_OBJECT_CREATE_FUNCT pCreFunct;
00042 AXIS_OBJECT_DELETE_FUNCT pDelFunct;
00043 AXIS_DESERIALIZE_FUNCT pDZFunct;
00044 AXIS_OBJECT_SIZE_FUNCT pSizeFunct;
00045 AxisString m_TypeName;
00046 AxisString m_URI;
00047 public:
00048 ComplexObjectHandler();
00049 ~ComplexObjectHandler();
00050 void init();
00051 };
00052
00053 typedef union uParamValue
00054 {
00055 int nValue;
00056 unsigned int unValue;
00057 short sValue;
00058 unsigned short usValue;
00059 long lValue;
00060 unsigned ulValue;
00061 char cValue;
00062 unsigned char ucValue;
00063 float fValue;
00064 double dValue;
00065 struct tm tValue;
00066 xsd__hexBinary hbValue;
00067 xsd__base64Binary b64bValue;
00068 long lDuration;
00069 class ArrayBean* pArray;
00070 class IArrayBean* pIArray;
00071 ComplexObjectHandler* pCplxObj;
00072 const AxisChar* pStrValue;
00073 AnyType* pAnyObject;
00074 } uParamValue;
00075
00076 class IParam
00077 {
00078 public:
00079 IParam(){};
00080 virtual ~IParam(){};
00081 virtual int setArrayElements(void* pElements)= 0;
00082 virtual int setArrayElements(void* pObject,
00083 AXIS_DESERIALIZE_FUNCT pDZFunct, AXIS_OBJECT_DELETE_FUNCT pDelFunct,
00084 AXIS_OBJECT_SIZE_FUNCT pSizeFunct)=0;
00085 virtual int setUserType(void* pObject, AXIS_DESERIALIZE_FUNCT pDZFunct,
00086 AXIS_OBJECT_DELETE_FUNCT pDelFunct)=0;
00087 virtual void setName(const AxisChar* sName)=0;
00088 };
00089
00090 AXIS_CPP_NAMESPACE_END
00091
00092 #endif
00093