public static HashtableRemove ( System hashtable, System key ) : |
||
hashtable | System | The Hashtable instance |
key | System | The key of the element to remove |
return |
public void Dispose() { if ((System.Object)aliasEntry != null) { SupportClass.HashtableRemove(slaveInterp._aliasTable, aliasEntry); } if (slaveCmd != null) { SupportClass.HashtableRemove(targetInterp._targetTable, slaveCmd); } name.Release(); prefix.Release(); }
/// <summary>---------------------------------------------------------------------- /// /// disposeCmd -- /// /// Invoked when an object command for a slave interpreter is deleted; /// cleans up all state associated with the slave interpreter and destroys /// the slave interpreter. /// /// Results: /// None. /// /// Side effects: /// Cleans up all state associated with the slave interpreter and /// destroys the slave interpreter. /// /// ---------------------------------------------------------------------- /// </summary> public void disposeCmd() { // Unlink the slave from its master interpreter. SupportClass.HashtableRemove(masterInterp.slaveTable, path); // Set to null so that when the InterpInfo is cleaned up in the slave // it does not try to delete the command causing all sorts of grief. // See SlaveRecordDeleteProc(). interpCmd = null; if (slaveInterp != null) { slaveInterp.dispose(); } }
internal static void unregisterChannel(Interp interp, Channel chan) { Hashtable chanTable = getInterpChanTable(interp); SupportClass.HashtableRemove(chanTable, chan.ChanName); if (--chan.refCount <= 0) { try { chan.close(); } catch (System.IO.IOException e) { throw new TclRuntimeError("TclIO.unregisterChannel() Error: IOException when closing " + chan.ChanName + ": " + e.Message, e); } } }
/// <summary> Removes the specified object from this set if it is present. /// /// If the specified object is of type <code>LdapAttribute</code>, the /// specified attribute will be removed. If the specified object is of type /// <code>String</code>, the attribute with a name that matches the string will /// be removed. /// /// </summary> /// <param name="object">LdapAttribute to be removed or <code>String</code> naming /// the attribute to be removed. /// /// </param> /// <returns> true if the object was removed. /// /// @throws ClassCastException occurs the specified Object /// is not of type <code>LdapAttribute</code> or of type <code>String</code>. /// </returns> public override bool Remove(object object_Renamed) { string attributeName; //the name is the key to object in the HashMap if (object_Renamed is string) { attributeName = ((string)object_Renamed); } else { attributeName = ((LdapAttribute)object_Renamed).Name; } if ((object)attributeName == null) { return(false); } return(SupportClass.HashtableRemove(map, attributeName.ToUpper()) != null); }
public void release() { lock (this) { if ((refCount == 0) && (primaryThread != null)) { throw new TclRuntimeError("Attempting to release a Notifier before it's preserved"); } if (refCount <= 0) { throw new TclRuntimeError("Attempting to release a freed Notifier"); } --refCount; if (refCount == 0) { SupportClass.HashtableRemove(notifierTable, primaryThread); primaryThread = null; } } }
public TCL.CompletionCode cmdProc(Interp interp, TclObject[] objv) { VersionSatisfiesResult vsres; Package pkg; PkgAvail avail; PkgAvail prev; string version; string pkgName; string key; string cmd; string ver1, ver2; System.Text.StringBuilder sbuf; IDictionaryEnumerator enum_Renamed; int i, opt, exact; bool once; if (objv.Length < 2) { throw new TclNumArgsException(interp, 1, objv, "option ?arg arg ...?"); } opt = TclIndex.get(interp, objv[1], validCmds, "option", 0); switch (opt) { case OPT_FORGET: { // Forget takes 0 or more arguments. for (i = 2; i < objv.Length; i++) { // We do not need to check to make sure // package name is "" because it would not // be in the hash table so name will be ignored. pkgName = objv[i].ToString(); pkg = (Package)interp.packageTable[pkgName]; // If this package does not exist, go to next one. if (pkg == null) { continue; } SupportClass.HashtableRemove(interp.packageTable, pkgName); while (pkg.avail != null) { avail = pkg.avail; pkg.avail = avail.next; avail = null; } pkg = null; } return(TCL.CompletionCode.RETURN); } case OPT_IFNEEDED: { if ((objv.Length < 4) || (objv.Length > 5)) { throw new TclNumArgsException(interp, 1, objv, "ifneeded package version ?script?"); } pkgName = objv[2].ToString(); version = objv[3].ToString(); // Verify that this version string is valid. checkVersion(interp, version); if (objv.Length == 4) { pkg = (Package)interp.packageTable[pkgName]; if (pkg == null) { return(TCL.CompletionCode.RETURN); } } else { pkg = findPackage(interp, pkgName); } for (avail = pkg.avail, prev = null; avail != null; prev = avail, avail = avail.next) { if (compareVersions(avail.version, version, null) == 0) { if (objv.Length == 4) { // If doing a query return current script. interp.setResult(avail.script); return(TCL.CompletionCode.RETURN); } // We matched so we must be setting the script. break; } } // When we do not match on a query return nothing. if (objv.Length == 4) { return(TCL.CompletionCode.RETURN); } if (avail == null) { avail = new PkgAvail(); avail.version = version; if (prev == null) { avail.next = pkg.avail; pkg.avail = avail; } else { avail.next = prev.next; prev.next = avail; } } avail.script = objv[4].ToString(); return(TCL.CompletionCode.RETURN); } case OPT_NAMES: { if (objv.Length != 2) { throw new TclNumArgsException(interp, 1, objv, "names"); } try { sbuf = new System.Text.StringBuilder(); enum_Renamed = interp.packageTable.GetEnumerator(); once = false; while (enum_Renamed.MoveNext()) { once = true; key = ((string)enum_Renamed.Current); pkg = (Package)enum_Renamed.Value; if (((System.Object)pkg.version != null) || (pkg.avail != null)) { Util.appendElement(interp, sbuf, key); } } if (once) { interp.setResult(sbuf.ToString()); } } catch (TclException e) { throw new TclRuntimeError("unexpected TclException: " + e); } return(TCL.CompletionCode.RETURN); } case OPT_PRESENT: { if (objv.Length < 3) { throw new TclNumArgsException(interp, 2, objv, "?-exact? package ?version?"); } if (objv[2].ToString().Equals("-exact")) { exact = 1; } else { exact = 0; } version = null; if (objv.Length == (4 + exact)) { version = objv[3 + exact].ToString(); checkVersion(interp, version); } else if ((objv.Length != 3) || (exact == 1)) { throw new TclNumArgsException(interp, 2, objv, "?-exact? package ?version?"); } if (exact == 1) { version = pkgPresent(interp, objv[3].ToString(), version, true); } else { version = pkgPresent(interp, objv[2].ToString(), version, false); } interp.setResult(version); break; } case OPT_PROVIDE: { if ((objv.Length < 3) || (objv.Length > 4)) { throw new TclNumArgsException(interp, 1, objv, "provide package ?version?"); } if (objv.Length == 3) { pkg = (Package)interp.packageTable[objv[2].ToString()]; if (pkg != null) { if ((System.Object)pkg.version != null) { interp.setResult(pkg.version); } } return(TCL.CompletionCode.RETURN); } pkgProvide(interp, objv[2].ToString(), objv[3].ToString()); return(TCL.CompletionCode.RETURN); } case OPT_REQUIRE: { if ((objv.Length < 3) || (objv.Length > 5)) { throw new TclNumArgsException(interp, 1, objv, "require ?-exact? package ?version?"); } if (objv[2].ToString().Equals("-exact")) { exact = 1; } else { exact = 0; } version = null; if (objv.Length == (4 + exact)) { version = objv[3 + exact].ToString(); checkVersion(interp, version); } else if ((objv.Length != 3) || (exact == 1)) { throw new TclNumArgsException(interp, 1, objv, "require ?-exact? package ?version?"); } if (exact == 1) { version = pkgRequire(interp, objv[3].ToString(), version, true); } else { version = pkgRequire(interp, objv[2].ToString(), version, false); } interp.setResult(version); return(TCL.CompletionCode.RETURN); } case OPT_UNKNOWN: { if (objv.Length > 3) { throw new TclNumArgsException(interp, 1, objv, "unknown ?command?"); } if (objv.Length == 2) { if ((System.Object)interp.packageUnknown != null) { interp.setResult(interp.packageUnknown); } } else if (objv.Length == 3) { interp.packageUnknown = null; cmd = objv[2].ToString(); if (cmd.Length > 0) { interp.packageUnknown = cmd; } } return(TCL.CompletionCode.RETURN); } case OPT_VCOMPARE: { if (objv.Length != 4) { throw new TclNumArgsException(interp, 1, objv, "vcompare version1 version2"); } ver1 = objv[2].ToString(); ver2 = objv[3].ToString(); checkVersion(interp, ver1); checkVersion(interp, ver2); interp.setResult(compareVersions(ver1, ver2, null)); return(TCL.CompletionCode.RETURN); } case OPT_VERSIONS: { if (objv.Length != 3) { throw new TclNumArgsException(interp, 1, objv, "versions package"); } pkg = (Package)interp.packageTable[objv[2].ToString()]; if (pkg != null) { try { sbuf = new System.Text.StringBuilder(); once = false; for (avail = pkg.avail; avail != null; avail = avail.next) { once = true; Util.appendElement(interp, sbuf, avail.version); } if (once) { interp.setResult(sbuf.ToString()); } } catch (TclException e) { throw new TclRuntimeError("unexpected TclException: " + e.Message, e); } } return(TCL.CompletionCode.RETURN); } case OPT_VSATISFIES: { if (objv.Length != 4) { throw new TclNumArgsException(interp, 1, objv, "vsatisfies version1 version2"); } ver1 = objv[2].ToString(); ver2 = objv[3].ToString(); checkVersion(interp, ver1); checkVersion(interp, ver2); vsres = new VersionSatisfiesResult(); compareVersions(ver1, ver2, vsres); interp.setResult(vsres.satisfies); return(TCL.CompletionCode.RETURN); } default: { throw new TclRuntimeError("TclIndex.get() error"); } } // end switch(opt) return(TCL.CompletionCode.RETURN); }
public virtual void removeFactoryType(System.Type cls) { SupportClass.HashtableRemove(factories, cls); }
public virtual void removeFactory(AudioDeviceFactory factory) { SupportClass.HashtableRemove(factories, factory.GetType()); }
/// <summary> /// Remove a supported component. /// </summary> /// <param name="name">The name of the component to be removed.</param> public virtual void Remove(System.String name) { SupportClass.HashtableRemove(supported, name); }