blob: 631195d24aadcd5f35632cfa99238722f63a87a4 [file] [log] [blame]
/* -*- C++ -*- */
/*
* Copyright 2003-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(AXIS_ARRAYBEAN_H__OF_AXIS_INCLUDED_)
#define AXIS_ARRAYBEAN_H__OF_AXIS_INCLUDED_
#include "BasicTypeSerializer.h"
#include "ComplexObjectHandler.h"
#include <list>
AXIS_CPP_NAMESPACE_START
using namespace std;
/**
@class ArrayBean
@brief interface for the ArrayBeanI class.
This class is used inside Param class and wrapper classes only.
@author Susantha Kumara (skumara@virtusa.com)
*/
class ArrayBean
{
friend class Param;
public:
ArrayBean ();
virtual ~ ArrayBean ();
virtual int Serialize (SoapSerializer & pSZ);
int GetArraySize ();
public:
XSDTYPE m_type; //array element type
int m_nSize; //array size only one dimensional arrays
AxisString m_ItemName; //name of an item like <item>34</item>
union uAValue //this is useful only when Param is used as a return parameter
{
void *sta; //simple type array
ComplexObjectHandler *cta; //complex type array
}
m_value;
private:
AxisString m_TypeName;
AxisString m_URI;
public: //IArrayBean Interface
void SetDimension (int nDim);
void SetItemName (const AxisChar* sName);
void SetTypeName (const AxisChar* sName);
void SetUri (const AxisChar* sURI);
void RemoveArrayPointer ();
};
AXIS_CPP_NAMESPACE_END
#endif