summaryrefslogtreecommitdiff
path: root/ACE/ACEXML/common/XML_Types.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ACEXML/common/XML_Types.h')
-rw-r--r--ACE/ACEXML/common/XML_Types.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/ACE/ACEXML/common/XML_Types.h b/ACE/ACEXML/common/XML_Types.h
new file mode 100644
index 00000000000..5a55d6b7754
--- /dev/null
+++ b/ACE/ACEXML/common/XML_Types.h
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file XML_Types.h
+ *
+ * This file collects the type definitions for data types
+ * used in ACE XML parser.
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
+#ifndef _ACEXML_XML_TYPES_H_
+#define _ACEXML_XML_TYPES_H_
+
+#include /**/ "ace/pre.h"
+#include "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Basic_Types.h"
+#include "ace/SString.h"
+#include "ace/Functor_String.h"
+
+# if defined (ACE_HAS_WCHAR) && (ACE_SIZEOF_WCHAR == 2)
+typedef wchar_t ACEXML_UTF16;
+# else
+typedef ACE_USHORT16 ACEXML_UTF16;
+# endif /* ACE_HAS_WCHAR && ACE_SIZEOF_WCHAR == 2 */
+
+# if defined (ACE_HAS_WCHAR) && (ACE_SIZEOF_WCHAR == 4)
+typedef wchar_t ACEXML_UCS4;
+# else
+typedef ACE_UINT32 ACEXML_UCS4;
+# endif /* ACE_HAS_WCHAR && ACE_SIZEOF_WCHAR == 4 */
+
+typedef char ACEXML_UTF8;
+
+/**
+ * @typedef ACEXML_Char
+ * ACEXML_Char only maps to ACEXML_UTF16 when ACE_USES_WCHAR is defined.
+ * Here we assume sizeof (wchar_t) is always 2 bytes.
+ *
+ * Default XML strings will use UTF-8 encoding. We would like to use
+ * the string classes in standard C++ Library here. But they are not
+ * very portable yet (as far as I know,) and I'll just use ACE_CString
+ * for now, unless UNICODE support is turned on. Notice that you
+ * should never convert strings between ACE_CString and ACE_WString
+ * using the built-in conversion functions as they only perform simple
+ * copy without any encoding conversion.
+ */
+typedef ACE_TCHAR ACEXML_Char;
+# if defined (ACE_USES_WCHAR)
+//typedef ACEXML_UTF16 ACEXML_Char;
+typedef ACE_WString ACEXML_String;
+# else
+//typedef ACEXML_UTF8 ACEXML_Char;
+typedef ACE_CString ACEXML_String;
+# endif /* ACE_USES_WCHAR */
+
+# if (!defined (ACEXML_HAS_INLINE) && defined (__ACE_INLINE__)) || (ACEXML_HAS_INLINE == 1)
+# define __ACEXML_INLINE__ inline
+# else
+# if defined (__ACEXML_INLINE__)
+# undef __ACEXML_INLINE__
+# endif /* __ACEXML_INLINE__ */
+# endif /* (!ACEXML_HAS_INLINE) && (__ACE_INLINE__) || (ACEXML_HAS_INLINE == 1) */
+
+# if defined (__ACEXML_INLINE__)
+# define ACEXML_INLINE inline
+# else
+# define ACEXML_INLINE
+# endif /* __ACEXML_INLINE */
+
+
+#include /**/ "ace/post.h"
+
+#endif /* _ACEXML_XML_TYPE_H_ */