blob: bf39ffca056c9d4a1f7cab4dfd7f6d95223817c1 [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.
*
*/
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
/* NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE */
/* ---------------------------------------------------------------- */
/* CHANGES TO hpp HEADER FILE MAY NEED TO BE PROPAGATED TO THE */
/* C-EQUIVALENT HEADER FILE IN SUPPORT OF THE C-BINDING INTERFACES. */
/* ---------------------------------------------------------------- */
/* NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE */
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
#ifdef WIN32
#pragma warning (disable : 4786)
#pragma warning (disable : 4530)
#endif
#if !defined(__GDEFINE_OF_AXIS_INCLUDED__)
#define __GDEFINE_OF_AXIS_INCLUDED__
/**
* @file GDefine.hpp
*
* This file contains all global definitions that are valid across whole
* Axis C++ project.
*/
#define AXIS_CPP_NAMESPACE_START namespace axiscpp {
#define AXIS_CPP_NAMESPACE_END }
/*
The following is necessary for the skeletons and stubs to be built
*/
namespace axiscpp {}
#define AXIS_CPP_NAMESPACE_USE using namespace axiscpp;
#define AXIS_CPP_NAMESPACE_PREFIX axiscpp::
AXIS_CPP_NAMESPACE_START
/**
* @enum AXIS_GLOBAL_ERROR
* Enumeration of global error codes used by the Axis C++ engine.
*/
typedef enum
{
/**
* Success
*/
AXIS_SUCCESS=0,
/**
* Failure
*/
AXIS_FAIL = -1,
/**
* Failure - only for C binding, not used in C++,
* but defined in order to reserve.
*/
AXIS_EXCEPTION = -2,
/**
* Object already exists
*/
AXIS_OBJECT_ALREADY_EXISTS=1,
/**
* A matching handler does not exist
*/
AXIS_NO_SUCH_HANDLER,
/**
* A matching service does not exist
*/
AXIS_NO_SUCH_SERVICE,
/**
* No SOAP header blocks remaining
*/
AXIS_NO_REMAINING_SOAP_HEADERS
} AXIS_GLOBAL_ERROR;
/**
* @enum AXIS_PROTOCOL_TYPE
* Enumeration of transport protocols.
*/
typedef enum
{
/**
* Unknown
*/
APT_UNKNOWN = -1,
/**
* HTTP 1.0
*/
APTHTTP1_0=0,
/**
* HTTP 1.1
*/
APTHTTP1_1,
/**
* FTP
*/
APTFTP,
/**
* SMTP
*/
APTSMTP,
/**
* HTTPS
*/
APTHTTPS,
/**
* Other
*/
APTOTHER
} AXIS_PROTOCOL_TYPE;
/**
* @enum AXIS_TRANSPORT_INFORMATION_TYPE
* Enumeration of the different information types used by the transport.
*/
typedef enum
{
/**
* SoapAction header field
*/
SOAPACTION_HEADER,
/**
* URI to service
*/
SERVICE_URI,
/**
* Name of operation on service
*/
OPERATION_NAME,
/**
* Length of SOAP message
*/
SOAP_MESSAGE_LENGTH,
/**
* Generic transport properties
*/
TRANSPORT_PROPERTIES,
/**
* Properties for secure transport
*/
SECURE_PROPERTIES,
/**
* Name of transport library
*/
DLL_NAME,
/**
* Name of SSL channel library
*/
CHANNEL_HTTP_SSL_DLL_NAME = DLL_NAME,
/**
* Name of non-SSL channel library
*/
CHANNEL_HTTP_DLL_NAME,
/**
* Content type
*/
CONTENT_TYPE,
/**
* Whether redirect should be handled implicitly. Values can be "true" or "false".
* The default is false. Redirects will only be implicitly be handled if going from
* http:// to http:// or https:// to https://.
*/
ENABLE_AUTOMATIC_REDIRECT,
/**
* Maximum number of automatic redirects to follow. Property should be a string representing a numeric value.
* Default is 1. If "0" is specified, it will be as if ENABLE_AUTOMATIC_REDIRECT is set to
* false.
*/
MAX_AUTOMATIC_REDIRECT,
/**
* I/O timeout in seconds. Property should be a string representing a numeric value.
*/
IO_TIMEOUT,
/**
* Connect timeout in seconds. Property should be a string representing a numeric value.
*/
CONNECT_TIMEOUT
} AXIS_TRANSPORT_INFORMATION_TYPE;
#define SOAPACTIONHEADER "SOAPAction"
#define AxisChar char
#define AxisXMLCh char
#define XML_Ch AxisChar
#define AxisString std::basic_string<char>
#define AxisXMLString std::basic_string<AxisXMLCh>
#ifdef WIN32
#define AxisSprintf(X, Y, Z, W) sprintf(X, Z, W)
#else /* linux */
#define AxisSprintf(X, Y, Z, W) sprintf(X, Z, W)
#endif
#if defined(WIN32)
#define STORAGE_CLASS_INFO __declspec(dllexport)
#else
#define STORAGE_CLASS_INFO
#endif
#if defined(__GNUC__)
/*replaced stdcall with cdecl to make it work on some platforms with older libraries - Samisa*/
/*#define AXISCALL __attribute__((stdcall))*/
#define AXISCALL __attribute__((cdecl))
#else /* unix or win32 */
#if defined(__unix)
#define AXISCALL
#else
#define AXISCALL __stdcall
#endif
#endif
/*
* Following macro define an API function of Axis C++
* Format of the AXISAPI macro is as follows
* AXISAPI(<METHOD NAME>, <PARAMETER LIST>)
*/
#define AXISAPI(M, P) AXISCALL M P = 0;
#define APIHASPARAMS
#define APINOPARAMS
AXIS_CPP_NAMESPACE_END
#endif