Exemple #1
0
        /// <summary>
        /// Query session list by given instance id array.
        /// </summary>
        /// <param name="instanceIds"></param>
        /// <returns>List of session wrapper objects.</returns>
        internal IEnumerable <PSObject> QuerySession(
            IEnumerable <Guid> instanceIds,
            out IEnumerable <ErrorRecord> errorRecords)
        {
            HashSet <PSObject> sessions   = new HashSet <PSObject>();
            HashSet <uint>     sessionIds = new HashSet <uint>();
            List <ErrorRecord> errRecords = new List <ErrorRecord>();

            errorRecords = errRecords;
            foreach (Guid instanceid in instanceIds)
            {
                if (this.curCimSessionsByInstanceId.ContainsKey(instanceid))
                {
                    CimSessionWrapper wrapper = this.curCimSessionsByInstanceId[instanceid];
                    if (!sessionIds.Contains(wrapper.SessionId))
                    {
                        sessionIds.Add(wrapper.SessionId);
                        sessions.Add(wrapper.GetPSObject());
                    }
                }
                else
                {
                    AddErrorRecord(ref errRecords, instanceidPropName, instanceid);
                }
            }

            return(sessions);
        }
Exemple #2
0
        /// <summary>
        /// Query session list by given session objects array.
        /// </summary>
        /// <param name="cimsessions"></param>
        /// <returns>List of session wrapper objects.</returns>
        internal IEnumerable <PSObject> QuerySession(IEnumerable <CimSession> cimsessions,
                                                     out IEnumerable <ErrorRecord> errorRecords)
        {
            HashSet <PSObject> sessions   = new HashSet <PSObject>();
            HashSet <uint>     sessionIds = new HashSet <uint>();
            List <ErrorRecord> errRecords = new List <ErrorRecord>();

            errorRecords = errRecords;
            foreach (CimSession cimsession in cimsessions)
            {
                if (this.curCimSessionWrapper.ContainsKey(cimsession))
                {
                    CimSessionWrapper wrapper = this.curCimSessionWrapper[cimsession];
                    if (!sessionIds.Contains(wrapper.SessionId))
                    {
                        sessionIds.Add(wrapper.SessionId);
                        sessions.Add(wrapper.GetPSObject());
                    }
                }
                else
                {
                    AddErrorRecord(ref errRecords, CimSessionClassName, CimSessionObject);
                }
            }

            return(sessions);
        }
Exemple #3
0
        internal IEnumerable <PSObject> QuerySession(IEnumerable <CimSession> cimsessions, out IEnumerable <ErrorRecord> errorRecords)
        {
            HashSet <PSObject> pSObjects     = new HashSet <PSObject>();
            HashSet <uint>     nums          = new HashSet <uint>();
            List <ErrorRecord> errorRecords1 = new List <ErrorRecord>();

            errorRecords = errorRecords1;
            foreach (CimSession cimsession in cimsessions)
            {
                if (!this.curCimSessionWrapper.ContainsKey(cimsession))
                {
                    this.AddErrorRecord(ref errorRecords1, CimSessionState.CimSessionClassName, CimSessionState.CimSessionObject);
                }
                else
                {
                    CimSessionWrapper item = this.curCimSessionWrapper[cimsession];
                    if (nums.Contains(item.SessionId))
                    {
                        continue;
                    }
                    nums.Add(item.SessionId);
                    pSObjects.Add(item.GetPSObject());
                }
            }
            return(pSObjects);
        }
Exemple #4
0
        /// <summary>
        /// <para>
        /// Add new CimSession object to cache.
        /// </para>
        /// </summary>
        /// <param name="session"></param>
        /// <param name="sessionId"></param>
        /// <param name="instanceId"></param>
        /// <param name="name"></param>
        /// <param name="computerName"></param>
        /// <param name="protocol"></param>
        /// <returns></returns>
        internal PSObject AddObjectToCache(
            CimSession session,
            uint sessionId,
            Guid instanceId,
            string name,
            string computerName,
            ProtocolType protocol)
        {
            CimSessionWrapper wrapper = new CimSessionWrapper(
                sessionId, instanceId, name, computerName, session, protocol);

            HashSet <CimSessionWrapper> objects;

            if (!this.curCimSessionsByComputerName.TryGetValue(computerName, out objects))
            {
                objects = new HashSet <CimSessionWrapper>();
                this.curCimSessionsByComputerName.Add(computerName, objects);
            }

            objects.Add(wrapper);

            if (!this.curCimSessionsByName.TryGetValue(name, out objects))
            {
                objects = new HashSet <CimSessionWrapper>();
                this.curCimSessionsByName.Add(name, objects);
            }

            objects.Add(wrapper);

            this.curCimSessionsByInstanceId.Add(instanceId, wrapper);
            this.curCimSessionsById.Add(sessionId, wrapper);
            this.curCimSessionWrapper.Add(session, wrapper);
            return(wrapper.GetPSObject());
        }
Exemple #5
0
        internal IEnumerable <PSObject> QuerySession(IEnumerable <Guid> instanceIds, out IEnumerable <ErrorRecord> errorRecords)
        {
            HashSet <PSObject> pSObjects     = new HashSet <PSObject>();
            HashSet <uint>     nums          = new HashSet <uint>();
            List <ErrorRecord> errorRecords1 = new List <ErrorRecord>();

            errorRecords = errorRecords1;
            foreach (Guid instanceId in instanceIds)
            {
                if (!this.curCimSessionsByInstanceId.ContainsKey(instanceId))
                {
                    this.AddErrorRecord(ref errorRecords1, CimSessionState.instanceidPropName, instanceId);
                }
                else
                {
                    CimSessionWrapper item = this.curCimSessionsByInstanceId[instanceId];
                    if (nums.Contains(item.SessionId))
                    {
                        continue;
                    }
                    nums.Add(item.SessionId);
                    pSObjects.Add(item.GetPSObject());
                }
            }
            return(pSObjects);
        }
Exemple #6
0
        internal IEnumerable <PSObject> QuerySession(IEnumerable <string> nameArray, out IEnumerable <ErrorRecord> errorRecords)
        {
            HashSet <PSObject> pSObjects     = new HashSet <PSObject>();
            HashSet <uint>     nums          = new HashSet <uint>();
            List <ErrorRecord> errorRecords1 = new List <ErrorRecord>();

            errorRecords = errorRecords1;
            foreach (var str in this.curCimSessionsByName)
            {
                bool            count           = false;
                WildcardPattern wildcardPattern = new WildcardPattern(str.Key, WildcardOptions.IgnoreCase);
                Dictionary <string, HashSet <CimSessionWrapper> > .Enumerator enumerator = this.curCimSessionsByName.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        KeyValuePair <string, HashSet <CimSessionWrapper> > keyValuePair = str;
                        if (!wildcardPattern.IsMatch(keyValuePair.Key))
                        {
                            continue;
                        }
                        HashSet <CimSessionWrapper> value = keyValuePair.Value;
                        count = value.Count > 0;
                        HashSet <CimSessionWrapper> .Enumerator enumerator1 = value.GetEnumerator();
                        try
                        {
                            while (enumerator1.MoveNext())
                            {
                                CimSessionWrapper current = enumerator1.Current;
                                if (nums.Contains(current.SessionId))
                                {
                                    continue;
                                }
                                nums.Add(current.SessionId);
                                pSObjects.Add(current.GetPSObject());
                            }
                        }
                        finally
                        {
                            enumerator1.Dispose();
                        }
                    }
                }
                finally
                {
                    enumerator.Dispose();
                }
                if (count || WildcardPattern.ContainsWildcardCharacters(str.Key))
                {
                    continue;
                }
                this.AddErrorRecord(ref errorRecords1, CimSessionState.namePropName, str.Key);
            }
            return(pSObjects);
        }
Exemple #7
0
        internal PSObject AddObjectToCache(CimSession session, uint sessionId, Guid instanceId, string name, string computerName, ProtocolType protocol)
        {
            HashSet <CimSessionWrapper> cimSessionWrappers = null;
            CimSessionWrapper           cimSessionWrapper  = new CimSessionWrapper(sessionId, instanceId, name, computerName, session, protocol);

            if (!this.curCimSessionsByComputerName.TryGetValue(computerName, out cimSessionWrappers))
            {
                cimSessionWrappers = new HashSet <CimSessionWrapper>();
                this.curCimSessionsByComputerName.Add(computerName, cimSessionWrappers);
            }
            cimSessionWrappers.Add(cimSessionWrapper);
            if (!this.curCimSessionsByName.TryGetValue(name, out cimSessionWrappers))
            {
                cimSessionWrappers = new HashSet <CimSessionWrapper>();
                this.curCimSessionsByName.Add(name, cimSessionWrappers);
            }
            cimSessionWrappers.Add(cimSessionWrapper);
            this.curCimSessionsByInstanceId.Add(instanceId, cimSessionWrapper);
            this.curCimSessionsById.Add(sessionId, cimSessionWrapper);
            this.curCimSessionWrapper.Add(session, cimSessionWrapper);
            return(cimSessionWrapper.GetPSObject());
        }
        /// <summary>
        /// <para>
        /// Add new CimSession object to cache
        /// </para>
        /// </summary>
        /// <param name="session"></param>
        /// <param name="sessionId"></param>
        /// <param name="instanceId"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        internal PSObject AddObjectToCache(
            CimSession session,
            UInt32 sessionId,
            Guid instanceId,
            String name,
            String computerName,
            ProtocolType protocol)
        {
            CimSessionWrapper wrapper = new CimSessionWrapper(
                sessionId, instanceId, name, computerName, session, protocol);

            HashSet<CimSessionWrapper> objects;
            if (!this.curCimSessionsByComputerName.TryGetValue(computerName, out objects))
            {
                objects = new HashSet<CimSessionWrapper>();
                this.curCimSessionsByComputerName.Add(computerName, objects);
            }
            objects.Add(wrapper);

            if (!this.curCimSessionsByName.TryGetValue(name, out objects))
            {
                objects = new HashSet<CimSessionWrapper>();
                this.curCimSessionsByName.Add(name, objects);
            }
            objects.Add(wrapper);

            this.curCimSessionsByInstanceId.Add(instanceId, wrapper);
            this.curCimSessionsById.Add(sessionId, wrapper);
            this.curCimSessionWrapper.Add(session, wrapper);
            return wrapper.GetPSObject();
        }
Exemple #9
0
		internal PSObject AddObjectToCache(CimSession session, uint sessionId, Guid instanceId, string name, string computerName, ProtocolType protocol)
		{
			HashSet<CimSessionWrapper> cimSessionWrappers = null;
			CimSessionWrapper cimSessionWrapper = new CimSessionWrapper(sessionId, instanceId, name, computerName, session, protocol);
			if (!this.curCimSessionsByComputerName.TryGetValue(computerName, out cimSessionWrappers))
			{
				cimSessionWrappers = new HashSet<CimSessionWrapper>();
				this.curCimSessionsByComputerName.Add(computerName, cimSessionWrappers);
			}
			cimSessionWrappers.Add(cimSessionWrapper);
			if (!this.curCimSessionsByName.TryGetValue(name, out cimSessionWrappers))
			{
				cimSessionWrappers = new HashSet<CimSessionWrapper>();
				this.curCimSessionsByName.Add(name, cimSessionWrappers);
			}
			cimSessionWrappers.Add(cimSessionWrapper);
			this.curCimSessionsByInstanceId.Add(instanceId, cimSessionWrapper);
			this.curCimSessionsById.Add(sessionId, cimSessionWrapper);
			this.curCimSessionWrapper.Add(session, cimSessionWrapper);
			return cimSessionWrapper.GetPSObject();
		}