2 * Copyright 2015 Xamarin Inc
3 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
5 #ifndef __MONO_METADATA_ASSEMBLY_INTERNALS_H__
6 #define __MONO_METADATA_ASSEMBLY_INTERNALS_H__
10 #include <mono/metadata/assembly.h>
12 MONO_API MonoImage* mono_assembly_load_module_checked (MonoAssembly *assembly, uint32_t idx, MonoError *error);
14 MonoAssembly * mono_assembly_open_a_lot (const char *filename, MonoImageOpenStatus *status, gboolean refonly, gboolean load_from_context);
16 /* If predicate returns true assembly should be loaded, if false ignore it. */
17 typedef gboolean (*MonoAssemblyCandidatePredicate)(MonoAssembly *, gpointer);
19 MonoAssembly* mono_assembly_open_predicate (const char *filename,
21 gboolean load_from_context,
22 MonoAssemblyCandidatePredicate pred,
24 MonoImageOpenStatus *status);
26 MonoAssembly* mono_assembly_load_from_predicate (MonoImage *image, const char *fname,
28 MonoAssemblyCandidatePredicate pred,
30 MonoImageOpenStatus *status);
32 /* MonoAssemblyCandidatePredicate that compares the assembly name (name, version,
33 * culture, public key token) of the candidate with the wanted name, if the
34 * wanted name has a public key token (if not present, always return true).
35 * Pass the wanted MonoAssemblyName* as the user_data.
38 mono_assembly_candidate_predicate_sn_same_name (MonoAssembly *candidate, gpointer wanted_name);
40 #endif /* __MONO_METADATA_ASSEMBLY_INTERNALS_H__ */