You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/05/18 08:34:09 UTC

svn commit: r407474 - /webservices/axis2/trunk/c/util/include/axis2_utils_defines.h

Author: damitha
Date: Wed May 17 23:34:08 2006
New Revision: 407474

URL: http://svn.apache.org/viewvc?rev=407474&view=rev
Log:
New file added

Added:
    webservices/axis2/trunk/c/util/include/axis2_utils_defines.h   (with props)

Added: webservices/axis2/trunk/c/util/include/axis2_utils_defines.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axis2_utils_defines.h?rev=407474&view=auto
==============================================================================
--- webservices/axis2/trunk/c/util/include/axis2_utils_defines.h (added)
+++ webservices/axis2/trunk/c/util/include/axis2_utils_defines.h Wed May 17 23:34:08 2006
@@ -0,0 +1,174 @@
+/*
+ * Copyright 2004,2005 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.
+ */
+
+#ifndef AXIS2_UTILS_DEFINES_H
+#define AXIS2_UTILS_DEFINES_H
+
+#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;
+    typedef char axis2_byte_t;
+
+#define AXIS2_CRLF_LENGTH 2
+
+/* 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
+
+/** 
+  * This enum is used to decide the type of storage used 
+  */
+typedef enum _axis2_xml_parser_type
+{
+    AXIS2_XML_PARSER_TYPE_BUFFER = 1,
+	AXIS2_XML_PARSER_TYPE_FILE,
+    AXIS2_XML_PARSER_TYPE_DOC
+} axis2_xml_parser_type;
+
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_UTILS_DEFINES_H */

Propchange: webservices/axis2/trunk/c/util/include/axis2_utils_defines.h
------------------------------------------------------------------------------
    svn:executable = *