Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Examples  

IParam.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(_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  *  @class ComplexObjectHandler
00029  *  @brief
00030  *
00031  *  @author Susantha Kumara (skumara@virtusa.com)
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;/* this will hold the c type tm struct*/
00063     xsd__hexBinary hbValue;
00064     xsd__base64Binary b64bValue;
00065     long lDuration;/* duration in seconds*/
00066     class ArrayBean* pArray; /* this is used to hold arrays */
00067     class IArrayBean* pIArray; /* used by wrapper classes */
00068     ComplexObjectHandler* pCplxObj;
00069     const AxisChar* pStrValue;
00070     AnyType* pAnyObject; /* used to hold AnyType struct for xsd:any */
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 

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