Ejemplo n.º 1
0
        /// <summary>
        /// Lookup/create a key set for a single key scheme.
        /// </summary>
        /// <param name="scheme"></param>
        /// <returns></returns>
        private SingleKeySet NewKeysetFor(SingleKeyScheme scheme)
        {
            IKeySet keys;

            if (!keySets.TryGetValue(scheme, out keys))
            {
                keys = new SingleKeySet();

                keySets.Add(scheme, keys);
            }

            return (SingleKeySet)keys;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get the key set for a single scheme. This set should not be modified.
        /// </summary>
        /// <param name="scheme">The scheme.</param>
        /// <returns>The key set for the scheme. Will be empty if no keys are defined for the scheme.</returns>
        public SingleKeySet KeysetFor(SingleKeyScheme scheme)
        {
            IKeySet keys;

            if (!keySets.TryGetValue(scheme, out keys))
                return EmptySingleKeyset;
            else
                return (SingleKeySet)keys;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Remove a key for single key scheme.
        /// </summary>
        /// <param name="scheme">The key scheme.</param>
        /// <param name="key">The key to remove.</param>
        public virtual void Remove(SingleKeyScheme scheme, Key key)
        {
            IKeySet keys;

            if (keySets.TryGetValue(scheme, out keys))
            {
                keys.Remove(key);

                if (keys.IsEmpty)
                    keySets.Remove(scheme);
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Add a key for single key scheme.
 /// </summary>
 /// <param name="scheme">The key scheme.</param>
 /// <param name="key">The key to add.</param>
 public virtual void Add(SingleKeyScheme scheme, Key key)
 {
     NewKeysetFor(scheme).Add(key);
 }