Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

ArrayBean.h

00001 /* -*- C++ -*- */
00002 /*
00003  *   Copyright 2003-2004 The Apache Software Foundation.
00004  *
00005  *   Licensed under the Apache License, Version 2.0 (the "License");
00006  *   you may not use this file except in compliance with the License.
00007  *   You may obtain a copy of the License at
00008  *
00009  *       http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  *   Unless required by applicable law or agreed to in writing, software
00012  *   distributed under the License is distributed on an "AS IS" BASIS,
00013  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  *   See the License for the specific language governing permissions and
00015  *   limitations under the License.
00016  */
00017 
00018 
00019 #if !defined(AXIS_ARRAYBEAN_H__INCLUDED_)
00020 #define AXIS_ARRAYBEAN_H__INCLUDED_
00021 
00022 #include "IArrayBean.h"
00023 #include <axis/server/IParam.h>
00024 #include <axis/server/BasicTypeSerializer.h>
00025 
00026 #include <list>
00027 using namespace std;
00028 
00037 class ArrayBean:public IArrayBean
00038 {
00039     friend class Param;
00040     public:
00041         ArrayBean ();
00042         virtual ~ ArrayBean ();
00043         virtual int Serialize (SoapSerializer & pSZ);
00044         int GetArraySize ();
00045 
00046     public:
00047         XSDTYPE m_type;        //array element type
00048         int m_nSize;           //array size only one dimensional arrays
00049         AxisString m_ItemName; //name of an item like <item>34</item>
00050     union uAValue //this is useful only when Param is used as a return parameter
00051     {
00052         void *sta;                      //simple type array
00053         ComplexObjectHandler *cta;      //complex type array
00054     }
00055     m_value;
00056     private:
00057         AxisString m_TypeName;
00058         AxisString m_URI;
00059     public:                      //IArrayBean Interface
00060         void SetDimension (int nDim);
00061         void SetItemName (const AxisChar* sName);
00062         void SetTypeName (const AxisChar* sName);
00063         void SetUri (const AxisChar* sURI);
00064         void RemoveArrayPointer ();
00065 };
00066 
00067 #endif 

Generated on Fri Apr 9 12:21:28 2004 for axiscpp by doxygen1.2.18