Example #1
0
        public AssemblyLoaderService(IReloadManager reloadManager, Action <string> log)
        {
            _reloadManager = reloadManager;
            _log           = log;

            OnReloadManager(reloadManager);
        }
Example #2
0
        public async Task Run(IReloadManager reloadManager, Action <string> log = null)
        {
            var server = new Server(new []
            {
                new ChannelOption(ChannelOptions.MaxReceiveMessageLength, 838860800),
                new ChannelOption(ChannelOptions.MaxSendMessageLength, 838860800)
            })
            {
                Services = { AssemblyLoader.BindService(new AssemblyLoaderService(
                                                            reloadManager,
                                                            log ?? (s => Debug.WriteLine(s))
                                                            )) },
                Ports = { new ServerPort("0.0.0.0", Configuration.ListenPort, ServerCredentials.Insecure) }
            };

            server.Start();
        }
Example #3
0
        private void OnReloadManager(IReloadManager reloadManager)
        {
            _reloadManager = reloadManager;

            if (reloadManager is INotifyReplacement inr)
            {
                inr.NotifyReplacement = rm =>
                {
                    inr.NotifyReplacement = null;

                    _log($"Replacing reload manager: {rm}");

                    OnReloadManager(rm);
                }
            }
            ;

            if (reloadManager is IRequestHostCommand irehc)
            {
                irehc.RequestHostCommand += req
                                            => RequestHostCommandImpl?.Invoke(req);
            }
        }