X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mono%2Fmetadata%2Fassembly-internals.h;h=65dc09f8712bc485f15fb4d5e45bc427f8037be8;hb=1004d95b6b70e8b67a2b6782e0832faab9fa269a;hp=5af7bd6b9a3d02e569a70a7a42106b1135239562;hpb=3319d6a5a753c3ded84c20a4ff2a0935a58fec21;p=mono.git diff --git a/mono/metadata/assembly-internals.h b/mono/metadata/assembly-internals.h index 5af7bd6b9a3..65dc09f8712 100644 --- a/mono/metadata/assembly-internals.h +++ b/mono/metadata/assembly-internals.h @@ -1,12 +1,41 @@ -/* +/** + * \file * Copyright 2015 Xamarin Inc * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #ifndef __MONO_METADATA_ASSEMBLY_INTERNALS_H__ #define __MONO_METADATA_ASSEMBLY_INTERNALS_H__ +#include + #include MONO_API MonoImage* mono_assembly_load_module_checked (MonoAssembly *assembly, uint32_t idx, MonoError *error); +MonoAssembly * mono_assembly_open_a_lot (const char *filename, MonoImageOpenStatus *status, gboolean refonly, gboolean load_from_context); + +/* If predicate returns true assembly should be loaded, if false ignore it. */ +typedef gboolean (*MonoAssemblyCandidatePredicate)(MonoAssembly *, gpointer); + +MonoAssembly* mono_assembly_open_predicate (const char *filename, + gboolean refonly, + gboolean load_from_context, + MonoAssemblyCandidatePredicate pred, + gpointer user_data, + MonoImageOpenStatus *status); + +MonoAssembly* mono_assembly_load_from_predicate (MonoImage *image, const char *fname, + gboolean refonly, + MonoAssemblyCandidatePredicate pred, + gpointer user_data, + MonoImageOpenStatus *status); + +/* MonoAssemblyCandidatePredicate that compares the assembly name (name, version, + * culture, public key token) of the candidate with the wanted name, if the + * wanted name has a public key token (if not present, always return true). + * Pass the wanted MonoAssemblyName* as the user_data. + */ +gboolean +mono_assembly_candidate_predicate_sn_same_name (MonoAssembly *candidate, gpointer wanted_name); + #endif /* __MONO_METADATA_ASSEMBLY_INTERNALS_H__ */