internal Proxy(TRemote instance, bool ownsInstance) { LocalInstance = instance; _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); _ownsInstance = ownsInstance; }
public MessageRouter(ISerializedMessageHandler serializedMessageHandler, ILogicalEndPoint logicalEndPoint, IRouteManager routeManager, ILogger <MessageRouter> logger = null) { if (serializedMessageHandler == null) { throw new ArgumentNullException(nameof(serializedMessageHandler)); } if (logicalEndPoint == null) { throw new ArgumentNullException(nameof(logicalEndPoint)); } if (routeManager == null) { throw new ArgumentNullException(nameof(routeManager)); } _serializedMessageHandler = serializedMessageHandler; _logicalEndPoint = logicalEndPoint; _routeManager = routeManager; _logger = logger; _receiveProcess = new AsyncProcess(ReceiveProcedure, start: true); _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync, AsyncDisposeHelperOptions.Synchronize); }
#pragma warning restore IDE0032 public ModuleSupervisor(DirectoryInfo directory, IMetadataReader metadataReader, ILogger <ModuleSupervisor> logger = null) { if (directory == null) { throw new ArgumentNullException(nameof(directory)); } if (metadataReader == null) { throw new ArgumentNullException(nameof(metadataReader)); } Directory = directory; _metadataReader = metadataReader; _logger = logger; // Volatile write op (Is avtually not necessary here, because the CLR enforces thread-safety.) _state = ModuleSupervisorState.Initializing; _metadataLazy = new DisposableAsyncLazy <IModuleMetadata>( factory: LookupMetadataAsync, options: DisposableAsyncLazyOptions.Autostart | DisposableAsyncLazyOptions.ExecuteOnCallingThread | DisposableAsyncLazyOptions.RetryOnFailure); _supervisorProcess = new AsyncProcess(SupervisorProcessRoutine, start: true); _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
internal Proxy(ProxyHost host, int id, Type objectType) { _host = host; Id = id; _objectType = objectType; _isActivated = true; _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
internal Proxy(ProxyHost proxyHost, int id, ActivationMode activationMode, object[] activationParameters) { _host = proxyHost; Id = id; ActivationMode = activationMode; ActivationParamers = activationParameters; _isActivated = false; _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
public Proxy(TRemote instance) { if (instance == null) { throw new ArgumentNullException(nameof(instance)); } LocalInstance = instance; _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
internal Proxy(ProxyHost host, int id, Type remoteType) { if (host == null) { throw new ArgumentNullException(nameof(host)); } _host = host; Id = id; _remoteType = remoteType; _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
public ModuleServer(IRemoteMessageDispatcher messageDispatcher, IMetadataAccessor metadataAccessor, IModuleManager runningModules, IServiceProvider serviceProvider, IOptions <ModuleServerOptions> optionsAccessor, ILoggerFactory loggerFactory) { if (messageDispatcher == null) { throw new ArgumentNullException(nameof(messageDispatcher)); } if (metadataAccessor == null) { throw new ArgumentNullException(nameof(metadataAccessor)); } if (runningModules == null) { throw new ArgumentNullException(nameof(runningModules)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (optionsAccessor == null) { throw new ArgumentNullException(nameof(optionsAccessor)); } var options = optionsAccessor.Value ?? new ModuleServerOptions(); if (string.IsNullOrWhiteSpace(options.Prefix)) { throw new ArgumentException("A url prefix must be specified."); } _messageDispatcher = messageDispatcher; _metadataAccessor = metadataAccessor; _moduleManager = runningModules; _serviceProvider = serviceProvider; _loggerFactory = loggerFactory; _logger = _loggerFactory?.CreateLogger <ModuleServer>(); _disposeHelper = new AsyncDisposeHelper(DiposeInternalAsync, AsyncDisposeHelperOptions.Synchronize); _prefix = options.Prefix; Features.Set <IHttpRequestFeature>(new HttpRequestFeature()); Features.Set <IHttpResponseFeature>(new HttpResponseFeature()); }
public ProxyHost(Stream stream, IServiceProvider serviceProvider) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } _stream = stream; _serviceProvider = serviceProvider; _receiveProcess = new AsyncProcess(ReceiveProcess, start: true); _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
public DisposeAwareStream(Stream underlyingStream, Func <Task> disposeOperation, ILogger <DisposeAwareStream>?logger = null) { if (underlyingStream == null) { throw new ArgumentNullException(nameof(underlyingStream)); } if (disposeOperation == null) { throw new ArgumentNullException(nameof(disposeOperation)); } _underlyingStream = underlyingStream; _disposeOperation = disposeOperation; _logger = logger; _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
public DebugPort(IServiceProvider serviceProvider, IAddressConversion <IPEndPoint> addressConversion, IOptions <ModularityOptions> optionsAccessor, IRemoteMessageDispatcher messageDispatcher, ILoggerFactory loggerFactory = null) { if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (addressConversion == null) { throw new ArgumentNullException(nameof(addressConversion)); } if (optionsAccessor == null) { throw new ArgumentNullException(nameof(optionsAccessor)); } if (messageDispatcher == null) { throw new ArgumentNullException(nameof(messageDispatcher)); } var options = optionsAccessor.Value ?? new ModularityOptions(); _serviceProvider = serviceProvider; _messageDispatcher = messageDispatcher; _loggerFactory = loggerFactory; _logger = _loggerFactory?.CreateLogger <DebugPort>(); var endPoint = addressConversion.Parse(options.DebugConnection); _tcpHost = new TcpListener(endPoint); _connectionProcess = new AsyncProcess(ConnectProcedure); _initializationHelper = new AsyncInitializationHelper <IPEndPoint>(InitializeInternalAsync); _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync); }
public Connection(TcpEndPoint endPoint, IPEndPoint address, Stream stream) { if (endPoint == null) { throw new ArgumentNullException(nameof(endPoint)); } if (address == null) { throw new ArgumentNullException(nameof(address)); } if (stream == null) { throw new ArgumentNullException(nameof(stream)); } _endPoint = endPoint; RemoteAddress = address; _stream = stream; _receiveProcess = new AsyncProcess(ReceiveProcedure, start: true); _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync, AsyncDisposeHelperOptions.Synchronize); }