Merge pull request #4198 from vkargov/vk-prevbb
[mono.git] / mono / metadata / reflection-internals.h
1 /* 
2  * Copyright 2014 Xamarin Inc
3  * Copyright 2016 Microsoft
4  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
5  */
6 #ifndef __MONO_METADATA_REFLECTION_INTERNALS_H__
7 #define __MONO_METADATA_REFLECTION_INTERNALS_H__
8
9 #include <mono/metadata/object-internals.h>
10 #include <mono/metadata/reflection.h>
11 #include <mono/metadata/class-internals.h>
12 #include <mono/utils/mono-compiler.h>
13 #include <mono/utils/mono-error.h>
14
15 gboolean
16 mono_reflection_is_usertype (MonoReflectionType *ref);
17
18 MonoReflectionType*
19 mono_reflection_type_resolve_user_types (MonoReflectionType *type, MonoError *error);
20
21 MonoType*
22 mono_reflection_get_type_checked (MonoImage *rootimage, MonoImage* image, MonoTypeNameParse *info, mono_bool ignorecase, mono_bool *type_resolve, MonoError *error);
23
24 MonoType*
25 mono_reflection_type_from_name_checked (char *name, MonoImage *image, MonoError *error);
26
27 guint32
28 mono_reflection_get_token_checked (MonoObjectHandle obj, MonoError *error);
29
30 MonoObject*
31 mono_custom_attrs_get_attr_checked (MonoCustomAttrInfo *ainfo, MonoClass *attr_klass, MonoError *error);
32
33 MonoCustomAttrInfo*
34 mono_reflection_get_custom_attrs_info_checked (MonoObject *obj, MonoError *error);
35
36 MonoArray*
37 mono_reflection_get_custom_attrs_data_checked (MonoObject *obj, MonoError *error);
38
39 MonoArray*
40 mono_reflection_get_custom_attrs_blob_checked (MonoReflectionAssembly *assembly, MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *propValues, MonoArray *fields, MonoArray* fieldValues, MonoError *error);
41
42 MonoCustomAttrInfo*
43 mono_custom_attrs_from_index_checked    (MonoImage *image, uint32_t idx, gboolean ignore_missing, MonoError *error);
44 MonoCustomAttrInfo*
45 mono_custom_attrs_from_method_checked   (MonoMethod *method, MonoError *error);
46 MonoCustomAttrInfo*
47 mono_custom_attrs_from_class_checked    (MonoClass *klass, MonoError *error);
48 MonoCustomAttrInfo*
49 mono_custom_attrs_from_assembly_checked (MonoAssembly *assembly, gboolean ignore_missing, MonoError *error);
50 MonoCustomAttrInfo*
51 mono_custom_attrs_from_property_checked (MonoClass *klass, MonoProperty *property, MonoError *error);
52 MonoCustomAttrInfo*
53 mono_custom_attrs_from_event_checked    (MonoClass *klass, MonoEvent *event, MonoError *error);
54 MonoCustomAttrInfo*
55 mono_custom_attrs_from_field_checked    (MonoClass *klass, MonoClassField *field, MonoError *error);
56 MonoCustomAttrInfo*
57 mono_custom_attrs_from_param_checked    (MonoMethod *method, uint32_t param, MonoError *error);
58
59
60 char*
61 mono_identifier_unescape_type_name_chars (char* identifier);
62
63 MonoImage *
64 mono_find_dynamic_image_owner (void *ptr);
65
66 MonoReflectionAssemblyHandle
67 mono_assembly_get_object_handle (MonoDomain *domain, MonoAssembly *assembly, MonoError *error);
68
69 MonoReflectionType*
70 mono_type_get_object_checked (MonoDomain *domain, MonoType *type, MonoError *error);
71
72 MonoReflectionTypeHandle
73 mono_type_get_object_handle (MonoDomain *domain, MonoType *type, MonoError *error);
74
75 MonoReflectionField*
76 mono_field_get_object_checked (MonoDomain *domain, MonoClass *klass, MonoClassField *field, MonoError *error);
77
78 MonoReflectionFieldHandle
79 mono_field_get_object_handle (MonoDomain *domain, MonoClass *klass, MonoClassField *field, MonoError *error);
80
81 MonoReflectionMethod*
82 mono_method_get_object_checked (MonoDomain *domain, MonoMethod *method, MonoClass *refclass, MonoError *error);
83
84 MonoReflectionMethodHandle
85 mono_method_get_object_handle (MonoDomain *domain, MonoMethod *method, MonoClass *refclass, MonoError *error);
86
87 MonoReflectionProperty*
88 mono_property_get_object_checked (MonoDomain *domain, MonoClass *klass, MonoProperty *property, MonoError *error);
89
90 MonoReflectionPropertyHandle
91 mono_property_get_object_handle (MonoDomain *domain, MonoClass *klass, MonoProperty *property, MonoError *error);
92
93 MonoReflectionEventHandle
94 mono_event_get_object_handle (MonoDomain *domain, MonoClass *klass, MonoEvent *event, MonoError *error);
95
96 MonoReflectionModuleHandle
97 mono_module_get_object_handle (MonoDomain *domain, MonoImage *image, MonoError *error);
98
99 MonoReflectionModuleHandle
100 mono_module_file_get_object_handle (MonoDomain *domain, MonoImage *image, int table_index, MonoError *error);
101
102 MonoReflectionMethodBodyHandle
103 mono_method_body_get_object_handle (MonoDomain *domain, MonoMethod *method, MonoError *error);
104
105 MonoClass *
106 mono_class_from_mono_type_handle (MonoReflectionTypeHandle h);
107
108
109 #endif /* __MONO_METADATA_REFLECTION_INTERNALS_H__ */