public async Task <ServiceResult> Replicate() { var mItemsResult = MemoryStorageService.GetFromMemory() as ServiceResult <List <GameResult> >; ServiceResult replResult = null; if (mItemsResult.IsValid) { if (mItemsResult.Data.Count() == 0) { return(new ServiceResult().Valid()); } else { replResult = ReplicationService.Replicate(mItemsResult.Data); } } if (replResult.IsValid) { MemoryStorageService.DeleteFromMemory(mItemsResult.Data); return(new ServiceResult().Valid()); } else { return(new ServiceResult().Invalid()); } }
private static void RunSimpleVersion(ServerConfiguration serverConfig, bool file) { SimpleGrpcMessageLayer.SetContext(serverConfig); // Add self id so that server knows itself SimplePartitionsDB partitionsDB = new SimplePartitionsDB( serverConfig.ServerId, HttpURLs.FromHostAndPort(serverConfig.Host, serverConfig.Port)); if (file) { if (!partitionsDB.ConfigurePartitions(serverConfig.Filename)) { Console.Error.WriteLine("Couldn't configure server from file."); DisplaySimpleFileSyntax(); } } ReplicationService service = new ReplicationService(partitionsDB, serverConfig); // Bind handlers for messages service.Bind(); FailureDetectionLayer.Instance.Start(); Console.WriteLine( "[{0}] Server {1} running at {2} with simple version", DateTime.Now.ToString("HH:mm:ss"), serverConfig.ServerId, serverConfig.Url); Console.WriteLine("Press any key to stop the server..."); Console.ReadKey(); FailureDetectionLayer.Instance.Shutdown(); }
private static void InitializeHosts(State state, out ReplicationServiceHost replicationServiceHost, out ReplicationClientHost <Message <Topic> > replicationClientHost) { var ipAddress = ConfigurationManager.AppSettings["ipAddress"]; var port = ConfigurationManager.AppSettings["port"]; var endpoint = ConfigurationManager.AppSettings["endpoint"]; var replicationService = new ReplicationService <Message <Topic> >(state); replicationServiceHost = new ReplicationServiceHost(); replicationServiceHost.Initialize(ipAddress, port, endpoint, replicationService); replicationClientHost = new ReplicationClientHost <Message <Topic> >(); replicationClientHost.Initialize(ipAddress, port, endpoint, replicationService); }
public void Initialize() { const string messageData = "Test data"; testMessage = new Message <Topic>() { Topic = Topic.FirstT, Data = messageData.ToByteArray() }; var clientMoq = new ClientMoq <Message <Topic> >(); var clientCbHandler = Substitute.For <ICallbackHandler <IReplicationClientCallback <Message <Topic> > > >(); clientCbHandler.GetCallback().Returns(clientMoq); var partnerMoq = new PartnerMoq <Message <Topic> >(); var partnerCbHandler = Substitute.For <ICallbackHandler <IReplicationServiceCallback <Message <Topic> > > >(); partnerCbHandler.GetCallback().Returns(partnerMoq); var proxyMoq = new ProxyMoq <Topic>(); replicationService = new ReplicationService <Message <Topic> >(clientCbHandler, partnerCbHandler, proxyMoq); invalidReplicationService = new ReplicationService <Message <Topic> >(null, null, null); }
// Optionally, provide a extension method for calling the perform method directly using the specific request // and response objects from AspNetCore public static void Perform(this ReplicationService self, HttpRequest request, HttpResponse response) => self.Perform( new AspNetCoreReplicationRequest(request), new AspNetCoreReplicationResponse(response));
public void Initialize() { ReplicatorService = new ReplicationService(replicators, "/api/replicate"); }