#ifndef AXIS2_DEFINES_H
#define AXIS2_DEFINES_H

/**
 * @file axis2_defines.h
 * @brief Useful definitions, which may have platform concerns
 */

#include <stddef.h>

#ifdef __cplusplus
extern "C"
{
#endif

/**
  * Type definitions
  */
    typedef char axis2_char_t;
    typedef int axis2_bool_t;
    typedef int axis2_status_t;
    typedef int axis2_scope_t;
    typedef unsigned int axis2_ssize_t;

/* These constant definitions should later be moved to platform dependant
 * files
 */

#define AXIS2_EOLN '\0'
	
/**
  * Boolean values
  */
#define AXIS2_TRUE 1
#define AXIS2_FALSE 0

/**
  *	Exporting 
  */
#if defined(WIN32)
#define AXIS2_EXPORT __declspec(dllexport)
#else
#define AXIS2_EXPORT
#endif

/**
  *	Importing
  */
#if defined(WIN32)
#define AXIS2_IMPORT __declspec(dllimport)
#else
#define AXIS2_IMPORT
#endif

/**
  *	Calling Conventions
  */
#if defined(__GNUC__)
#if defined(__i386)
#define AXIS2_CALL __attribute__((cdecl))
#else
#define AXIS2_CALL
#endif
#else
#if defined(__unix)
#define AXIS2_CALL
#else                           /* WIN32 */
#define AXIS2_CALL __stdcall
#endif
#endif
#define AXIS2_THREAD_FUNC AXIS2_CALL

#ifdef DOXYGEN

/* define these just so doxygen documents them */

/**
 * AXIS2_DECLARE_STATIC is defined when including Axis2's Core headers,
 * to provide static linkage when the dynamic library may be unavailable.
 *
 * @see AXIS2_DECLARE_EXPORT
 *
 * AXIS2_DECLARE_STATIC and AXIS2_DECLARE_EXPORT are left undefined when
 * including Axis2's Core headers, to import and link the symbols from the 
 * dynamic Axis2 Core library and assure appropriate indirection and calling 
 * conventions at compile time.
 */
# define AXIS2_DECLARE_STATIC
/**
 * AXIS2_DECLARE_EXPORT is defined when building the Axis2 Core dynamic
 * library, so that all public symbols are exported.
 *
 * @see AXIS2_DECLARE_STATIC
 */
# define AXIS2_DECLARE_EXPORT

#endif                          /* def DOXYGEN */

#if !defined(WIN32)
/**
 * Axis2 Core functions are declared with AXIS2_DECLARE(), so they may
 * use the most appropriate calling convention.  Other
 * Core functions with variable arguments must use AXIS2_DECLARE_NONSTD().
 * @code
 * AXIS2_DECLARE(rettype) axis2_func(args)
 * @endcode
 */
#define AXIS2_DECLARE(type)            type AXIS2_CALL

/**
 * Axis2 Core variable argument and hook functions are declared with 
 * AXIS2_DECLARE_NONSTD(), as they must use the C language calling convention.
 * @see AXIS2_DECLARE
 * @code
 * AXIS2_DECLARE_NONSTD(rettype) axis2_func(args [...])
 * @endcode
 */
#define AXIS2_DECLARE_NONSTD(type)     type

/**
 * Axis2 Core variables are declared with AXIS2_DECLARE_DATA.
 * This assures the appropriate indirection is invoked at compile time.
 *
 * @code
 * AXIS2_DECLARE_DATA type axis2_variable
 * @endcode
 */
#define AXIS2_DECLARE_DATA

#elif defined(AXIS2_DECLARE_STATIC)
#define AXIS2_DECLARE(type)            type AXIS2_CALL
#define AXIS2_DECLARE_NONSTD(type)     type
#define AXIS2_DECLARE_DATA
#elif defined(AXIS2_DECLARE_EXPORT)
#define AXIS2_DECLARE(type)            AXIS2_EXPORT type AXIS2_CALL
#define AXIS2_DECLARE_NONSTD(type)     AXIS2_EXPORT type
#define AXIS2_DECLARE_DATA             AXIS2_EXPORT
#else
#define AXIS2_DECLARE(type)            AXIS2_IMPORT type AXIS2_CALL
#define AXIS2_DECLARE_NONSTD(type)     AXIS2_IMPORT type
#define AXIS2_DECLARE_DATA             AXIS2_IMPORT
#endif


#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_DEFINES_H */
