HashtableRemove() public static method

Removes the element with the specified key from a Hashtable instance.
public static HashtableRemove ( System hashtable, System key ) : Object
hashtable System The Hashtable instance
key System The key of the element to remove
return System.Object
Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
 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;
         }
     }
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 public virtual void  removeFactoryType(System.Type cls)
 {
     SupportClass.HashtableRemove(factories, cls);
 }
Exemplo n.º 8
0
 public virtual void  removeFactory(AudioDeviceFactory factory)
 {
     SupportClass.HashtableRemove(factories, factory.GetType());
 }
Exemplo n.º 9
0
 /// <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);
 }