00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00060
00061 #if !defined(AFX_IPARAM_H__25C278BB_5875_49E6_A3EC_B6AD3E543D69__INCLUDED_)
00062 #define AFX_IPARAM_H__25C278BB_5875_49E6_A3EC_B6AD3E543D69__INCLUDED_
00063
00064 #include "AxisWrapperAPI.h"
00065 #include "TypeMapping.h"
00066 #include "time.h"
00067
00068 #include <string>
00069 using namespace std;
00070
00077 class ComplexObjectHandler
00078 {
00079 public:
00080 void* pObject;
00081 AXIS_SERIALIZE_FUNCT pSZFunct;
00082 AXIS_OBJECT_CREATE_FUNCT pCreFunct;
00083 AXIS_OBJECT_DELETE_FUNCT pDelFunct;
00084 AXIS_DESERIALIZE_FUNCT pDZFunct;
00085 AXIS_OBJECT_SIZE_FUNCT pSizeFunct;
00086 AxisString m_TypeName;
00087 AxisString m_URI;
00088 public:
00089 ComplexObjectHandler();
00090 ~ComplexObjectHandler();
00091 void Init();
00092 };
00093
00094 typedef union uParamValue
00095 {
00096 int nValue;
00097 unsigned int unValue;
00098 short sValue;
00099 unsigned short usValue;
00100 long lValue;
00101 unsigned ulValue;
00102 char cValue;
00103 unsigned char ucValue;
00104 float fValue;
00105 double dValue;
00106 struct tm tValue;
00107 long lDuration;
00108
00109
00110
00111 class ArrayBean* pArray;
00112 class IArrayBean* pIArray;
00113
00114
00115
00116 ComplexObjectHandler* pCplxObj;
00117
00118
00119 const AxisChar* pStrValue;
00120 } uParamValue;
00121
00122
00129 class IParam
00130 {
00131 public:
00132 IParam(){};
00133 virtual ~IParam(){};
00134
00135 virtual int GetInt(int* pValue) = 0;
00136 virtual int GetUnsignedInt(unsigned int* pValue) = 0;
00137 virtual int GetShort(short* pValue) = 0;
00138 virtual int GetUnsignedShort(unsigned short* pValue) = 0;
00139 virtual int GetByte(char* pValue) = 0;
00140 virtual int GetUnsignedByte(unsigned char* pValue) = 0;
00141 virtual int GetLong(long* pValue) = 0;
00142 virtual int GetInteger(long* pValue) = 0;
00143 virtual int GetUnsignedLong(unsigned long* pValue) = 0;
00144 virtual int GetFloat(float* pValue) = 0;
00145 virtual int GetDouble(double* pValue) = 0;
00146 virtual int GetDecimal(double* pValue) = 0;
00147 virtual int GetString(const AxisChar** pValue) = 0;
00148 virtual int GetAnyURI(const AxisChar** pValue) = 0;
00149 virtual int GetQName(const AxisChar** pValue) = 0;
00150 virtual int GetHexString(const AxisChar** pValue) = 0;
00151 virtual int GetBase64String(const AxisChar** pValue) = 0;
00152 virtual const AxisString& GetTypeName() = 0;
00156 virtual int GetDateTime(struct tm* pValue) = 0;
00157 virtual int GetDate(struct tm* pValue) = 0;
00158 virtual int GetTime(struct tm* pValue) = 0;
00161 virtual int GetDuration(long* pValue) = 0;
00162
00163 virtual int GetArraySize(int* pValue)= 0;
00164 virtual int SetArrayElements(void* pElements)= 0;
00165 virtual int SetArrayElements(void* pObject, AXIS_DESERIALIZE_FUNCT pDZFunct, AXIS_OBJECT_DELETE_FUNCT pDelFunct, AXIS_OBJECT_SIZE_FUNCT pSizeFunct)=0;
00166 virtual int SetUserType(void* pObject, AXIS_DESERIALIZE_FUNCT pDZFunct, AXIS_OBJECT_DELETE_FUNCT pDelFunct)=0;
00167 virtual void SetName(const AxisChar* sName)=0;
00168
00169 };
00170
00171 #endif // !defined(AFX_IPARAM_H__25C278BB_5875_49E6_A3EC_B6AD3E543D69__INCLUDED_)