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 using namespace std;
00027
00028
00029
00030
00031
00032
00033 class ComplexObjectHandler
00034 {
00035 public:
00036 void* pObject;
00037 AXIS_SERIALIZE_FUNCT pSZFunct;
00038 AXIS_OBJECT_CREATE_FUNCT pCreFunct;
00039 AXIS_OBJECT_DELETE_FUNCT pDelFunct;
00040 AXIS_DESERIALIZE_FUNCT pDZFunct;
00041 AXIS_OBJECT_SIZE_FUNCT pSizeFunct;
00042 AxisString m_TypeName;
00043 AxisString m_URI;
00044 public:
00045 ComplexObjectHandler();
00046 ~ComplexObjectHandler();
00047 void init();
00048 };
00049
00050 typedef union uParamValue
00051 {
00052 int nValue;
00053 unsigned int unValue;
00054 short sValue;
00055 unsigned short usValue;
00056 long lValue;
00057 unsigned ulValue;
00058 char cValue;
00059 unsigned char ucValue;
00060 float fValue;
00061 double dValue;
00062 struct tm tValue;
00063 xsd__hexBinary hbValue;
00064 xsd__base64Binary b64bValue;
00065 long lDuration;
00066 class ArrayBean* pArray;
00067 class IArrayBean* pIArray;
00068 ComplexObjectHandler* pCplxObj;
00069 const AxisChar* pStrValue;
00070 AnyType* pAnyObject;
00071 } uParamValue;
00072
00073 class IParam
00074 {
00075 public:
00076 IParam(){};
00077 virtual ~IParam(){};
00078 virtual int setArrayElements(void* pElements)= 0;
00079 virtual int setArrayElements(void* pObject,
00080 AXIS_DESERIALIZE_FUNCT pDZFunct, AXIS_OBJECT_DELETE_FUNCT pDelFunct,
00081 AXIS_OBJECT_SIZE_FUNCT pSizeFunct)=0;
00082 virtual int setUserType(void* pObject, AXIS_DESERIALIZE_FUNCT pDZFunct,
00083 AXIS_OBJECT_DELETE_FUNCT pDelFunct)=0;
00084 virtual void setName(const AxisChar* sName)=0;
00085 };
00086
00087 #endif
00088