blob: e223351774f76d572f9982525f5569730f9d0bd3 [file] [log] [blame]
/*
* Copyright 2003-2004 The Apache Software Foundation.
// (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
*
* 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(_AXISUSERAPIC_H_OF_AXIS_INCLUDED_)
#define _AXISUSERAPIC_H_OF_AXIS_INCLUDED_
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
/* NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE */
/* ---------------------------------------------------------------- */
/* THIS HEADER FILE PATTERNED AFTER CORRESPONDING hpp HEADER FILE. */
/* CHANGES TO hpp HEADER FILE MAY NEED TO BE PROPAGATED HERE AND IN */
/* THE IMPLEMEMTATION OF THE APIS. */
/* ---------------------------------------------------------------- */
/* NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE */
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
#include <time.h>
#include <string.h>
#include <axis/GDefine.h>
#include <axis/TypeMapping.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @file AxisUserAPI.h
* This file contains types defined in Axis C++. The mapping of basic xsd types
* to the C language types.
*
* The following xsd basic types are supported:
* - <tt> anyURI, base64Binary, boolean, byte, date, dateTime, decimal, double, duration, float, hexBinary, int, integer, long, NMTOKEN, NOTATION, QName, short, string, time, unsignedByte, unsignedInt, unsignedLong</tt> and \c unsignedShort.
*/
/**
* @typedef xsdc__string
* Axis C++ defined type for xml basic type string
*/
typedef AxiscChar * xsdc__string;
/**
* @typedef xsdc__normalizedString
* Axis C++ defined type for xml basic type normalizedString
*/
typedef AxiscChar * xsdc__normalizedString;
/**
* @typedef xsdc__token
* Axis C++ defined type for xml basic type token
*/
typedef AxiscChar * xsdc__token;
/**
* @typedef xsdc__language
* Axis C++ defined type for xml basic type language
*/
typedef AxiscChar * xsdc__language;
/**
* @typedef xsdc__Name
* Axis C++ defined type for xml basic type Name
*/
typedef AxiscChar * xsdc__Name;
/**
* @typedef xsdc__NCName
* Axis C++ defined type for xml basic type NCName
*/
typedef AxiscChar * xsdc__NCName;
/**
* @typedef xsdc__ID
* Axis C++ defined type for xml basic type ID
*/
typedef AxiscChar * xsdc__ID;
/**
* @typedef xsdc__IDREF
* Axis C++ defined type for xml basic type IDREF
*/
typedef AxiscChar * xsdc__IDREF;
/**
* @typedef xsdc__IDREFS
* Axis C++ defined type for xml basic type IDREFS
*/
typedef AxiscChar * xsdc__IDREFS;
/**
* @typedef xsdc__ENTITY
* Axis C++ defined type for xml basic type ENTITY
*/
typedef AxiscChar * xsdc__ENTITY;
/**
* @typedef xsdc__ENTITIES
* Axis C++ defined type for xml basic type ENTITIES
*/
typedef AxiscChar * xsdc__ENTITIES;
/**
* @typedef xsdc__NMTOKEN
* Axis C++ defined type for xml basic type NMTOKEN
*/
typedef AxiscChar * xsdc__NMTOKEN;
/**
* @typedef xsdc__NMTOKENS
* Axis C++ defined type for xml basic type NMTOKENS
*/
typedef AxiscChar * xsdc__NMTOKENS;
/**
* @typedef xsdc__NMTOKENS
* Axis C++ defined type for xml basic type NMTOKENS
*/
typedef AxiscChar * xsdc__anyType;
/**
* @typedef xsdc__integer
* Axis C++ defined type for xml basic type integer
*/
#ifdef WIN32
typedef __int64 xsdc__integer;
#else
typedef long long xsdc__integer;
#endif
/**
* @typedef xsdc__int
* Axis C++ defined type for xml basic type int
*/
typedef int xsdc__int;
/**
* @typedef xsdc__long
* Axis C++ defined type for xml basic type long
*/
#ifdef WIN32
typedef __int64 xsdc__long;
#else
typedef long long xsdc__long;
#endif
/**
* @typedef xsdc__short
* Axis C++ defined type for xml basic type short
*/
typedef short xsdc__short;
/**
* @typedef xsdc__decimal
* Axis C++ defined type for xml basic type decimal
*/
typedef double xsdc__decimal;
/**
* @typedef xsdc__float
* Axis C++ defined type for xml basic type float
*/
typedef float xsdc__float;
/**
* @typedef xsdc__double
* Axis C++ defined type for xml basic type double
*/
typedef double xsdc__double;
/**
* @typedef xsdc__boolean
* Axis C++ defined type for xml basic type boolean
*/
typedef enum
{
/**
* False
*/
false_=0,
/**
* True
*/
true_
} xsdc__boolean;
/**
* @typedef xsdc__byte
* Axis C++ defined type for xml basic type byte
*/
typedef signed char xsdc__byte;
/**
* @typedef xsdc__QName
* Axis C++ defined type for xml basic type QName
*/
typedef AxiscChar * xsdc__QName;
/**
* @typedef xsd__NOTATION
* Axis C++ defined type for xml basic type NOTATION
*/
typedef AxiscChar * xsdc__NOTATION;
/**
* @typedef xsdc__dateTime
* Axis C++ defined type for xml basic type dateTime
*/
typedef struct tm xsdc__dateTime;
/**
* @typedef xsdc__date
* Axis C++ defined type for xml basic type date
*/
typedef struct tm xsdc__date;
/**
* @typedef xsdc__time
* Axis C++ defined type for xml basic type time
*/
typedef struct tm xsdc__time;
/**
* @typedef xsdc__gYearMonth
* Axis C++ defined type for xml basic type gYearMonth
*/
typedef struct tm xsdc__gYearMonth;
/**
* @typedef xsdc__gYear
* Axis C++ defined type for xml basic type gYear
*/
typedef struct tm xsdc__gYear;
/**
* @typedef xsdc__gMonthDay
* Axis C++ defined type for xml basic type gMonthDay
*/
typedef struct tm xsdc__gMonthDay;
/**
* @typedef xsdc__gDay
* Axis C++ defined type for xml basic type gDay
*/
typedef struct tm xsdc__gDay;
/**
* @typedef xsdc__gMonth
* Axis C++ defined type for xml basic type gMonth
*/
typedef struct tm xsdc__gMonth;
/**
* @typedef xsdc__duration
* Axis C++ defined type for xml basic type duration
*/
typedef long xsdc__duration;
/**
* @typedef xsdc__nonNegativeInteger
* Axis C++ defined type for xml basic type nonNegativeInteger
*/
#ifdef WIN32
typedef unsigned __int64 xsdc__nonNegativeInteger;
#else
typedef unsigned long long xsdc__nonNegativeInteger;
#endif
/**
* @typedef xsdc__unsignedByte
* Axis C++ defined type for xml basic type unsignedByte
*/
typedef unsigned char xsdc__unsignedByte;
/**
* @typedef xsdc__unsignedInt
* Axis C++ defined type for xml basic type unsignedInt
*/
typedef unsigned int xsdc__unsignedInt;
/**
* @typedef xsdc__unsignedLong
* Axis C++ defined type for xml basic type unsignedLong
*/
#ifdef WIN32
typedef unsigned __int64 xsdc__unsignedLong;
#else
typedef unsigned long long xsdc__unsignedLong;
#endif
/**
* @typedef xsdc__unsignedShort
* Axis C++ defined type for xml basic type unsignedShort
*/
typedef unsigned short xsdc__unsignedShort;
/**
* @typedef xsdc__nonPositiveInteger
* Axis C++ defined type for xml basic type nonPositiveInteger
*/
#ifdef WIN32
typedef __int64 xsdc__nonPositiveInteger;
#else
typedef long long xsdc__nonPositiveInteger;
#endif
/**
* @typedef xsdc__positiveInteger
* Axis C++ defined type for xml basic type positiveInteger
*/
#ifdef WIN32
typedef unsigned __int64 xsdc__positiveInteger;
#else
typedef unsigned long long xsdc__positiveInteger;
#endif
/**
* @typedef xsdc__negativeInteger
* Axis C++ defined type for xml basic type negativeInteger
*/
#ifdef WIN32
typedef __int64 xsdc__negativeInteger;
#else
typedef long long xsdc__negativeInteger;
#endif
/**
* @struct xsdc__base64Binary
* Axis C++ defined type for xml basic type base64Binary
*/
typedef struct
{
/** Binary data */
xsdc__unsignedByte * __ptr;
/** Length, in bytes, of binary data */
xsdc__int __size;
} xsdc__base64Binary;
/**
* @struct xsdc__hexBinary
* Axis C++ defined type for xml basic type hexBinary
*/
typedef struct
{
/** Binary data */
xsdc__unsignedByte * __ptr;
/** Length, in bytes, of binary data */
xsdc__int __size;
} xsdc__hexBinary;
/**
* @typedef xsdc__anyURI
* Axis C++ defined type for xml basic type anyURI
*/
typedef AxiscChar * xsdc__anyURI;
/**
* @enum AXISC_BINDING_STYLE
* Enumeration for the different wsdl styles. This is used by the Axis
* engine to identify the web service or client style.
*/
typedef enum {
/**
* rpc/encoded binding style
*/
AXISC_RPC_ENCODED, /*default*/
/**
* doc/literal binding style
*/
AXISC_DOC_LITERAL,
/**
* rpc/literal binding style
*/
AXISC_RPC_LITERAL
} AXISC_BINDING_STYLE;
#define AXISC_OUT_PARAM
static const xsdc__boolean xsdc_boolean_true = (xsdc__boolean) 1;
static const xsdc__boolean xsdc_boolean_false = (xsdc__boolean) 0;
/**
* @enum
* Enumeration of channel types
*/
typedef enum {
/**
* Non-SSL channel
*/
AXISC_NORMAL_CHANNEL=0,
/**
* SSL channel
*/
AXISC_SSL_CHANNEL
} AXISC_CHANNEL_TYPE;
/**
* @typedef AXISC_XML_String
* Axis C++ defined type for xml encoded string. This is used only in AnyType.
*/
typedef char* AXISC_XML_String;
/**
* @struct AxiscAnyType
* Axis C++ defined type for handling xsd:any.
*/
typedef struct
{
/**
* @var _array Contains an array of xml encoded strings.
*/
AXISC_XML_String* _array;
/**
* @var _size Contains how many xml strings are there in _array
*/
int _size;
} AxiscAnyType;
/**
* Axis Array implementation.
*/
#define AXISC_DEFINED_ARRAY(type) \
typedef struct {\
type ** m_Array;\
int m_Size;\
AXISC_XSDTYPE m_Type; \
} type##_Array;
#define AXISC_DEFINED_POINTER_ARRAY(type) \
typedef struct {\
type * m_Array;\
int m_Size;\
AXISC_XSDTYPE m_Type; \
} type##_Array;
#define AXISC_DEFINED_ARRAY2(type) \
typedef struct {\
AXISCHANDLE m_Array;\
int m_Size;\
AXISC_XSDTYPE m_Type; \
} type##_Array;
typedef struct {
void** m_Array;
int m_Size;
AXISC_XSDTYPE m_Type; \
} Axisc_Array;
AXISC_DEFINED_ARRAY(xsdc__duration)
AXISC_DEFINED_ARRAY(xsdc__dateTime)
AXISC_DEFINED_ARRAY(xsdc__time)
AXISC_DEFINED_ARRAY(xsdc__date)
AXISC_DEFINED_ARRAY(xsdc__gYearMonth)
AXISC_DEFINED_ARRAY(xsdc__gYear)
AXISC_DEFINED_ARRAY(xsdc__gMonthDay)
AXISC_DEFINED_ARRAY(xsdc__gDay)
AXISC_DEFINED_ARRAY(xsdc__gMonth)
AXISC_DEFINED_POINTER_ARRAY(xsdc__string)
AXISC_DEFINED_POINTER_ARRAY(xsdc__normalizedString)
AXISC_DEFINED_POINTER_ARRAY(xsdc__token)
AXISC_DEFINED_POINTER_ARRAY(xsdc__language)
AXISC_DEFINED_POINTER_ARRAY(xsdc__Name)
AXISC_DEFINED_POINTER_ARRAY(xsdc__NCName)
AXISC_DEFINED_POINTER_ARRAY(xsdc__ID)
AXISC_DEFINED_POINTER_ARRAY(xsdc__IDREF)
AXISC_DEFINED_POINTER_ARRAY(xsdc__IDREFS)
AXISC_DEFINED_POINTER_ARRAY(xsdc__ENTITY)
AXISC_DEFINED_POINTER_ARRAY(xsdc__ENTITIES)
AXISC_DEFINED_POINTER_ARRAY(xsdc__NMTOKEN)
AXISC_DEFINED_POINTER_ARRAY(xsdc__NMTOKENS)
AXISC_DEFINED_ARRAY(xsdc__boolean)
AXISC_DEFINED_ARRAY(xsdc__base64Binary)
AXISC_DEFINED_ARRAY(xsdc__hexBinary)
AXISC_DEFINED_ARRAY(xsdc__float)
AXISC_DEFINED_ARRAY(xsdc__decimal)
AXISC_DEFINED_ARRAY(xsdc__integer)
AXISC_DEFINED_ARRAY(xsdc__nonPositiveInteger)
AXISC_DEFINED_ARRAY(xsdc__negativeInteger)
AXISC_DEFINED_ARRAY(xsdc__long)
AXISC_DEFINED_ARRAY(xsdc__int)
AXISC_DEFINED_ARRAY(xsdc__short)
AXISC_DEFINED_ARRAY(xsdc__byte)
AXISC_DEFINED_ARRAY(xsdc__nonNegativeInteger)
AXISC_DEFINED_ARRAY(xsdc__unsignedLong)
AXISC_DEFINED_ARRAY(xsdc__unsignedInt)
AXISC_DEFINED_ARRAY(xsdc__unsignedByte)
AXISC_DEFINED_ARRAY(xsdc__unsignedShort)
AXISC_DEFINED_ARRAY(xsdc__positiveInteger)
AXISC_DEFINED_ARRAY(xsdc__double)
AXISC_DEFINED_POINTER_ARRAY(xsdc__anyURI)
AXISC_DEFINED_POINTER_ARRAY(xsdc__QName)
AXISC_DEFINED_POINTER_ARRAY(xsdc__NOTATION)
AXISC_DEFINED_POINTER_ARRAY(xsdc__anyType)
#ifdef __cplusplus
}
#endif
#endif