#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 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 */
