Inheritance: IDisposablePlus, IDebuggable
Exemplo n.º 1
0
        internal void AddDrawable(DrawableBase item)
        {
            if(item == null)
                throw new ArgumentNullException();

            if(Items.Contains(item))
                throw new ArgumentException();

            Items.Add(item);
            DrawEngine2d.SetRenderRequired();
        }
        internal void AddUser(String key, DrawableBase user)
        {
            if(String.IsNullOrWhiteSpace(key))
                throw new ArgumentNullException();

            if(user == null)
                throw new ArgumentNullException();

            if(!Users.ContainsKey(key))
                throw new ArgumentException("Attempt to add a user to an unknown key.");

            if(Users[key] == null)
                Users[key] = new List<DrawableBase>();

            if(Users[key].Contains(user))
                throw new ArgumentException("Attempt to register a duplicate user.");

            Users[key].Add(user);
        }
        internal void RemoveUser(String key, DrawableBase user)
        {
            if(String.IsNullOrWhiteSpace(key))
                throw new ArgumentNullException();

            if(user == null)
                throw new ArgumentNullException();

            if(!Users.ContainsKey(key))
                throw new ArgumentException("Attempt to remove a user from an unknown key.");

            if(Users[key] == null)
                throw new ArgumentException("Attempt to remove an unknown user.");

            if(!Users[key].Contains(user))
                throw new ArgumentException("Attempt to remove an unknown user.");

            Users[key].Remove(user);

            //Let the cache policy decide what to do.
            ApplyCachePolicyForRemovalOfUser(key);
        }