Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / assembly-internals.h
1 /**
2  * \file
3  * Copyright 2015 Xamarin Inc
4  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
5  */
6 #ifndef __MONO_METADATA_ASSEMBLY_INTERNALS_H__
7 #define __MONO_METADATA_ASSEMBLY_INTERNALS_H__
8
9 #include <glib.h>
10
11 #include <mono/metadata/assembly.h>
12
13 MONO_API MonoImage*    mono_assembly_load_module_checked (MonoAssembly *assembly, uint32_t idx, MonoError *error);
14
15 MonoAssembly * mono_assembly_open_a_lot (const char *filename, MonoImageOpenStatus *status, gboolean refonly, gboolean load_from_context);
16
17 /* If predicate returns true assembly should be loaded, if false ignore it. */
18 typedef gboolean (*MonoAssemblyCandidatePredicate)(MonoAssembly *, gpointer);
19
20 MonoAssembly*          mono_assembly_open_predicate (const char *filename,
21                                                      gboolean refonly,
22                                                      gboolean load_from_context,
23                                                      MonoAssemblyCandidatePredicate pred,
24                                                      gpointer user_data,
25                                                      MonoImageOpenStatus *status);
26
27 MonoAssembly*          mono_assembly_load_from_predicate (MonoImage *image, const char *fname,
28                                                           gboolean refonly,
29                                                           MonoAssemblyCandidatePredicate pred,
30                                                           gpointer user_data,
31                                                           MonoImageOpenStatus *status);
32
33 /* MonoAssemblyCandidatePredicate that compares the assembly name (name, version,
34  * culture, public key token) of the candidate with the wanted name, if the
35  * wanted name has a public key token (if not present, always return true).
36  * Pass the wanted MonoAssemblyName* as the user_data.
37  */
38 gboolean
39 mono_assembly_candidate_predicate_sn_same_name (MonoAssembly *candidate, gpointer wanted_name);
40
41 #endif /* __MONO_METADATA_ASSEMBLY_INTERNALS_H__ */