internal void RemoveImporter(NamespaceEntry entry) { lock (this.importers) { for (int i = importers.Count - 1; i >= 0; i--) { if (entry == importers[i]) { importers.RemoveAt(i); entry.Namespace = null; break; } } } }
internal NamespaceEntry RegisterDynamicImport(NamespaceEntry pe) { lock (namespaces) { #if DEBUG TracesOutputProvider.TracesOutput.OutputTrace("dynamicImportPackage: try " + pe); #endif Namespace p = (Namespace)namespaces[pe.Name]; if (p != null && p.Provider != null) { p.AddImporter(pe); #if DEBUG TracesOutputProvider.TracesOutput.OutputTrace("dynamicImportPackage: added " + pe); #endif return(p.Provider); } return(null); } }
internal bool RemoveExporter(NamespaceEntry entry) { if (entry == provider) { return(false); } lock (this.exporters) { for (int i = exporters.Count - 1; i >= 0; i--) { if (entry == exporters[i]) { exporters.RemoveAt(i); entry.Namespace = null; break; } } } return(true); }
internal bool UnregisterPackages(IEnumerator exports, IEnumerator imports, bool force) { lock (namespaces) { bool allRemoved = true; while (exports.MoveNext()) { NamespaceEntry pe = (NamespaceEntry)exports.Current; Namespace p = pe.Namespace; if (p != null) { #if DEBUG TracesOutputProvider.TracesOutput.OutputTrace("unregisterPackages: unregister export - " + pe); #endif if (!p.RemoveExporter(pe)) { if (force) { p.Provider = null; p.RemoveExporter(pe); #if DEBUG TracesOutputProvider.TracesOutput.OutputTrace("unregisterPackages: forced unregister - " + pe); #endif } else { allRemoved = false; p.Zombie = true; #if DEBUG TracesOutputProvider.TracesOutput.OutputTrace("unregisterPackages: failed to unregister - " + pe); #endif continue; } } if (p.IsEmpty) { namespaces.Remove(pe.Name); } } } if (allRemoved) { while (imports.MoveNext()) { NamespaceEntry pe = (NamespaceEntry)imports.Current; Namespace p = pe.Namespace; if (p != null) { #if DEBUG TracesOutputProvider.TracesOutput.OutputTrace("unregisterPackages: unregister import - " + pe.ToString()); #endif p.RemoveImporter(pe); if (p.IsEmpty) { namespaces.Remove(pe.Name); } } } } return(allRemoved); } }
internal bool IsProvider(NamespaceEntry pe) { return(pe.Namespace != null && pe.Namespace.Provider == pe); }
internal ExportedNamespace(NamespaceEntry entry) { this.entry = entry; }
public override bool Equals(Object obj) { NamespaceEntry o = (NamespaceEntry)obj; return(name.Equals(o.name) && bundle == o.bundle && version.Equals(o.version)); }
/// <summary> /// Copy constructor. /// </summary> /// <param name="pe">The entry to be copied.</param> internal NamespaceEntry(NamespaceEntry pe) { this.name = pe.name; this.version = pe.version; this.bundle = pe.bundle; }
public Int32 CompareVersion(NamespaceEntry entry) { return(version.CompareTo(entry.version)); }
internal bool NameEqual(NamespaceEntry other) { return(name.Equals(other.name)); }