3 * Copyright 2015 Xamarin Inc
4 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
6 #ifndef __MONO_METADATA_ASSEMBLY_INTERNALS_H__
7 #define __MONO_METADATA_ASSEMBLY_INTERNALS_H__
11 #include <mono/metadata/assembly.h>
13 MONO_API MonoImage* mono_assembly_load_module_checked (MonoAssembly *assembly, uint32_t idx, MonoError *error);
15 MonoAssembly * mono_assembly_open_a_lot (const char *filename, MonoImageOpenStatus *status, gboolean refonly, gboolean load_from_context);
17 /* If predicate returns true assembly should be loaded, if false ignore it. */
18 typedef gboolean (*MonoAssemblyCandidatePredicate)(MonoAssembly *, gpointer);
20 MonoAssembly* mono_assembly_open_predicate (const char *filename,
22 gboolean load_from_context,
23 MonoAssemblyCandidatePredicate pred,
25 MonoImageOpenStatus *status);
27 MonoAssembly* mono_assembly_load_from_predicate (MonoImage *image, const char *fname,
29 MonoAssemblyCandidatePredicate pred,
31 MonoImageOpenStatus *status);
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.
39 mono_assembly_candidate_predicate_sn_same_name (MonoAssembly *candidate, gpointer wanted_name);
41 #endif /* __MONO_METADATA_ASSEMBLY_INTERNALS_H__ */