private static SignalHandler GetSignalHandler( int producerNum, Object target, LogicalChannelBindingMethodDesc consumingSignalBindingDesc, EngineImportService engineImportService) { if (consumingSignalBindingDesc == null) { return(SignalHandlerDefault.INSTANCE); } else { if (consumingSignalBindingDesc.BindingType is LogicalChannelBindingTypePassAlong) { return(new SignalHandlerDefaultWInvoke( target, consumingSignalBindingDesc.Method, engineImportService)); } else if (consumingSignalBindingDesc.BindingType is LogicalChannelBindingTypePassAlongWStream) { var streamInfo = (LogicalChannelBindingTypePassAlongWStream)consumingSignalBindingDesc.BindingType; return(new SignalHandlerDefaultWInvokeStream( target, consumingSignalBindingDesc.Method, engineImportService, streamInfo.StreamNum)); } else { throw new IllegalStateException( "Unrecognized signal binding: " + consumingSignalBindingDesc.BindingType); } } }
public LogicalChannelBinding(LogicalChannel logicalChannel, LogicalChannelBindingMethodDesc consumingBindingDesc, LogicalChannelBindingMethodDesc consumingSignalBindingDesc) { LogicalChannel = logicalChannel; ConsumingBindingDesc = consumingBindingDesc; ConsumingSignalBindingDesc = consumingSignalBindingDesc; }