Exemplo n.º 1
0
        public static async Task <IClusterClient> ConnectClient()
        {
            Console.WriteLine("Configuring connection to local silo...");

            var builder = new ClientBuilder()
                          .UseLocalhostClustering()
                          .Configure <ClusterOptions>(options =>
            {
                options.ClusterId = "dev";
                options.ServiceId = "Scynet";
            })
                          .ConfigureLogging(logging => logging.AddConsole());

            IClusterClient client = builder.Build();

            Console.WriteLine("Connecting...");

            await client.Connect();

            Console.WriteLine("Client successfully connected to silo host");

            return(client);
        }
Exemplo n.º 2
0
        public static List <string> MergeSort(Orleans.IClusterClient cliente, List <Guid> identificadores, int cantidad, MergeInterface.IMergeSort grano, List <string> arreglo, int p, int r)
        {
            var principal = cliente.GetGrain <MergeInterface.IMergeSort>(identificadores[contador]);

            if (contador == (identificadores.Count - 1))
            {
                contador = 0;
            }
            else
            {
                contador++;
            }

            if (p < r)
            {
                int q = (p + r) / 2;
                arreglo = MergeSort(cliente, identificadores, cantidad, principal, arreglo, p, q);
                arreglo = MergeSort(cliente, identificadores, cantidad, principal, arreglo, q + 1, r);
                var temporal = grano.Merge(arreglo, p, q, r);
                temporal.Wait();
                arreglo = temporal.Result;
            }
            return(arreglo);
        }