internal void ProcessReceivedData(RemoteDataObject <PSObject> receivedData)
        {
            if (receivedData.RunspacePoolId != this.clientRunspacePoolId)
            {
                throw new PSRemotingDataStructureException(RemotingErrorIdStrings.RunspaceIdsDoNotMatch, new object[] { receivedData.RunspacePoolId, this.clientRunspacePoolId });
            }
            switch (receivedData.DataType)
            {
            case RemotingDataType.RunspacePoolOperationResponse:
                this.SetMaxMinRunspacesResponseRecieved.SafeInvoke <RemoteDataEventArgs <PSObject> >(this, new RemoteDataEventArgs <PSObject>(receivedData.Data));
                return;

            case RemotingDataType.RunspacePoolStateInfo:
            {
                RunspacePoolStateInfo runspacePoolStateInfo = RemotingDecoder.GetRunspacePoolStateInfo(receivedData.Data);
                this.StateInfoReceived.SafeInvoke <RemoteDataEventArgs <RunspacePoolStateInfo> >(this, new RemoteDataEventArgs <RunspacePoolStateInfo>(runspacePoolStateInfo));
                this.NotifyAssociatedPowerShells(runspacePoolStateInfo);
                return;
            }

            case RemotingDataType.CreatePowerShell:
            case RemotingDataType.AvailableRunspaces:
            case RemotingDataType.GetCommandMetadata:
                break;

            case RemotingDataType.PSEventArgs:
            {
                PSEventArgs pSEventArgs = RemotingDecoder.GetPSEventArgs(receivedData.Data);
                this.PSEventArgsReceived.SafeInvoke <RemoteDataEventArgs <PSEventArgs> >(this, new RemoteDataEventArgs <PSEventArgs>(pSEventArgs));
                break;
            }

            case RemotingDataType.ApplicationPrivateData:
            {
                PSPrimitiveDictionary applicationPrivateData = RemotingDecoder.GetApplicationPrivateData(receivedData.Data);
                this.ApplicationPrivateDataReceived.SafeInvoke <RemoteDataEventArgs <PSPrimitiveDictionary> >(this, new RemoteDataEventArgs <PSPrimitiveDictionary>(applicationPrivateData));
                return;
            }

            case RemotingDataType.RunspacePoolInitData:
            {
                RunspacePoolInitInfo runspacePoolInitInfo = RemotingDecoder.GetRunspacePoolInitInfo(receivedData.Data);
                this.RSPoolInitInfoReceived.SafeInvoke <RemoteDataEventArgs <RunspacePoolInitInfo> >(this, new RemoteDataEventArgs <RunspacePoolInitInfo>(runspacePoolInitInfo));
                return;
            }

            case RemotingDataType.RemoteHostCallUsingRunspaceHost:
            {
                RemoteHostCall data = RemoteHostCall.Decode(receivedData.Data);
                this.RemoteHostCallReceived.SafeInvoke <RemoteDataEventArgs <RemoteHostCall> >(this, new RemoteDataEventArgs <RemoteHostCall>(data));
                return;
            }

            default:
                return;
            }
        }
Exemple #2
0
        internal void ProcessReceivedData(RemoteDataObject <PSObject> receivedData)
        {
            using (ClientRunspacePoolDataStructureHandler.tracer.TraceMethod())
            {
                if (receivedData.RunspacePoolId != this.clientRunspacePoolId)
                {
                    throw new PSRemotingDataStructureException(PSRemotingErrorId.RunspaceIdsDoNotMatch, new object[2]
                    {
                        (object)receivedData.RunspacePoolId,
                        (object)this.clientRunspacePoolId
                    });
                }
                switch (receivedData.DataType)
                {
                case RemotingDataType.RunspacePoolOperationResponse:
                    this.SetMaxMinRunspacesResponseRecieved((object)this, new RemoteDataEventArgs <PSObject>((object)receivedData.Data));
                    break;

                case RemotingDataType.RunspacePoolStateInfo:
                    RunspacePoolStateInfo runspacePoolStateInfo = RemotingDecoder.GetRunspacePoolStateInfo(receivedData.Data);
                    this.StateInfoReceived((object)this, new RemoteDataEventArgs <RunspacePoolStateInfo>((object)runspacePoolStateInfo));
                    this.NotifyAssociatedPowerShells(runspacePoolStateInfo);
                    break;

                case RemotingDataType.PSEventArgs:
                    this.PSEventArgsReceived((object)this, new RemoteDataEventArgs <PSEventArgs>((object)RemotingDecoder.GetPSEventArgs(receivedData.Data)));
                    break;

                case RemotingDataType.ApplicationPrivateData:
                    this.ApplicationPrivateDataReceived((object)this, new RemoteDataEventArgs <PSPrimitiveDictionary>((object)RemotingDecoder.GetApplicationPrivateData(receivedData.Data)));
                    break;

                case RemotingDataType.RemoteHostCallUsingRunspaceHost:
                    this.RemoteHostCallReceived((object)this, new RemoteDataEventArgs <RemoteHostCall>((object)RemoteHostCall.Decode(receivedData.Data)));
                    break;
                }
            }
        }