-/*
+/**
+ * \file
* Copyright 2015 Xamarin Inc
* Licensed under the MIT license. See LICENSE file in the project root for full license information.
*/
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 (*MonoAssemblyOpenPredicate)(MonoAssembly *, gpointer);
+typedef gboolean (*MonoAssemblyCandidatePredicate)(MonoAssembly *, gpointer);
MonoAssembly* mono_assembly_open_predicate (const char *filename,
gboolean refonly,
gboolean load_from_context,
- MonoAssemblyOpenPredicate pred,
+ 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__ */