コード例 #1
0
 public ApiGateway(IAccountServiceRpcClient accountService,
                   IOrderServiceRpcClient orderService, IQuoteServiceRpcClient quoteService)
 {
     this.accountService = accountService;
     this.orderService   = orderService;
     this.quoteService   = quoteService;
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: adchang/demo_exchange
        private static async Task DoSomething(IOrderServiceRpcClient client)
        {
            Random        rnd     = new Random();
            List <String> tickers = new List <String> {
                "ERX", "SPY", "DIA", "QQQ", "UPRO", "SPXU", "OILU", "OILD"
            };

            Display("Initializing service...");
            try {
                await client.InitializeServiceAsync(new Empty());
            } catch (Exception e) {
                Display("An error occurred: " + e.Message);
            }
            Display("Service initialized");

            // Quote quote = await client.GetQuoteAsync(new StringMessage { Value = "ERX" });
            // Display(quote.ToString());

            int             numThreads = 10;
            int             numTrades  = 100;
            ParallelOptions opt        = new ParallelOptions()
            {
                MaxDegreeOfParallelism = numThreads
            };

            Parallel.For(0, numTrades, opt, async i => {
                String ticker = tickers[rnd.Next(1, tickers.Count + 1) - 1];
                Display("Submitting order...");
                OrderResponse response = null;
                try {
                    response = await client.SubmitOrderAsync(new OrderRequest {
                        AccountId   = "gRPC-BUY",
                        Action      = OrderAction.OrderBuy,
                        Ticker      = ticker,
                        Type        = OrderType.OrderMarket,
                        Quantity    = 10,
                        OrderPrice  = 0,
                        TimeInForce = OrderTimeInForce.OrderDay
                    });
                } catch (Exception e) {
                    Display("An error occurred: " + e.Message);
                }
                Display("Order submitted: " + response.ToString());
            });
        }
コード例 #3
0
        public Simulator( //IOrderTestPerfService service,
            IAccountServiceRpcClient accountClient,
            IOrderServiceRpcClient orderClient)
        {
            // this.service = service;
            this.accountClient = accountClient;
            this.orderClient   = orderClient;
            var httpHandler = new HttpClientHandler();

            httpHandler.ServerCertificateCustomValidationCallback =
                HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
            var channel = GrpcChannel.ForAddress("https://hela:8090",
                                                 new GrpcChannelOptions {
                HttpHandler = httpHandler
            });

            this.apiClient = new ErxService.ErxServiceClient(channel);
        }
コード例 #4
0
ファイル: QuoteService.cs プロジェクト: adchang/demo_exchange
 public QuoteServiceGrpc(IDatabase redis, IOrderServiceRpcClient orderService)
 {
     this.redis        = redis;
     this.orderService = orderService;
 }