diff options
author | Bo Yang <struggleyb.nku@gmail.com> | 2009-08-11 11:17:23 +0000 |
---|---|---|
committer | Bo Yang <struggleyb.nku@gmail.com> | 2009-08-11 11:17:23 +0000 |
commit | 399da01ae4eb5c5e3e9349bacc2063c946c3d4a1 (patch) | |
tree | 433c8bcde94fc7a6e6f2e5cbf23842a84db98146 /include/dom/core/typeinfo.h | |
parent | eec057c7437e19b59ca1e698ce548cb56ce37240 (diff) | |
download | libdom-399da01ae4eb5c5e3e9349bacc2063c946c3d4a1.tar.gz libdom-399da01ae4eb5c5e3e9349bacc2063c946c3d4a1.tar.bz2 |
Merge the branches/struggleyb/libdom-remain back to trunk.
svn path=/trunk/dom/; revision=9191
Diffstat (limited to 'include/dom/core/typeinfo.h')
-rw-r--r-- | include/dom/core/typeinfo.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/dom/core/typeinfo.h b/include/dom/core/typeinfo.h new file mode 100644 index 0000000..f285799 --- /dev/null +++ b/include/dom/core/typeinfo.h @@ -0,0 +1,48 @@ +/* + * This file is part of libdom. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com> + */ + +#ifndef dom_core_typeinfo_h_ +#define dom_core_typeinfo_h_ + +#include <stdbool.h> + +#include <dom/core/exceptions.h> + +struct dom_string; + +typedef struct dom_type_info dom_type_info; + +typedef enum { + DOM_TYPE_INFO_DERIVATION_RESTRICTION = 0x00000001, + DOM_TYPE_INFO_DERIVATION_EXTENSION = 0x00000002, + DOM_TYPE_INFO_DERIVATION_UNION = 0x00000004, + DOM_TYPE_INFO_DERIVATION_LIST = 0x00000008 +} dom_type_info_derivation_method; + +dom_exception _dom_type_info_get_type_name(dom_type_info *ti, + struct dom_string **ret); +#define dom_type_info_get_type_name(t, r) _dom_type_info_get_type_name( \ + (dom_type_info *) (t), (struct dom_string **) (r)) + + +dom_exception _dom_type_info_get_type_namespace(dom_type_info *ti, + struct dom_string **ret); +#define dom_type_info_get_type_namespace(t, r) \ + _dom_type_info_get_type_namespace((dom_type_info *) (t),\ + (struct dom_string **) (r)) + + +dom_exception _dom_type_info_is_derived(dom_type_info *ti, + struct dom_string *namespace, struct dom_string *name, + dom_type_info_derivation_method method, bool *ret); +#define dom_type_info_is_derived(t, s, n, m, r) _dom_type_info_is_derived(\ + (dom_type_info *) (t), (struct dom_string *) (s), \ + (struct dom_string *) (n), \ + (dom_type_info_derivation_method) (m), (bool *) (r)) + + +#endif |