Example #1
0
        public void Run()
        {
            Console.Title = "Server: " + _serverId;
            Console.WriteLine("Running base version");
            var freezeUtilities       = new FreezeUtilities();
            var serverParameters      = UrlParameters.From(_serverUrl);
            var serverService         = new ServerService(_storage, freezeUtilities, _serverUrl, DelayMessage);
            var nodeService           = new NodeService(freezeUtilities, DelayMessage, RegisterServers, RegisterPartitions);
            var registerSlavesService = new SlaveRegisteringService(_storage);

            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
            var server = new Grpc.Core.Server {
                Services =
                {
                    DIDAService.BindService(serverService),
                    NodeControlService.BindService(nodeService),
                    RegisterSlaveToMasterService.BindService(registerSlavesService),
                    BaseSlaveService.BindService(new BaseSlaveServerService(_storage))
                },
                Ports =
                {
                    new ServerPort(serverParameters.Hostname,
                                   serverParameters.Port, ServerCredentials.Insecure)
                }
            };

            server.Start();
            Console.WriteLine("Server " + _serverId + " listening on port " + serverParameters.Port);
            ReadCommands();

            server.ShutdownAsync().Wait();
        }
Example #2
0
 public ServerService(IStorage storage, FreezeUtilities freezeUtilities, string myUrl, Action delayFunction)
 {
     _storage           = storage;
     _freezeUtilities   = freezeUtilities;
     _myUrl             = myUrl;
     this.delayFunction = delayFunction;
 }
Example #3
0
 public NodeService(FreezeUtilities freezeUtilities, Action delayFunction,
                    Action <ServerInfo[]> registerServersFunction, Action <PartitionInfo[]> registerPartitionsFunction)
 {
     this.freezeUtilities            = freezeUtilities;
     this.delayFunction              = delayFunction;
     this.registerServersFunction    = registerServersFunction;
     this.registerPartitionsFunction = registerPartitionsFunction;
 }
 public AdvancedSlaveServerService(AdvancedServerStorage storage, FreezeUtilities freeze)
 {
     _storage         = storage;
     _freezeUtilities = freeze;
 }