Esempio n. 1
0
        public Account(string name, IConnection connection, IApiObjectsFactory factory, IExecutionStorageInternal executionStorage,
            IPositionsStorageInternal positionsesStorageInternal, IOrdersStorageInternal ordersStorageInternal,
            IIdsDispenser idsDispenser, CancellationTokenSource internalCancelationTokenSource,
            AccountCurrenciesFields accountCurrenciesFields)
        {
            CodeContract.Requires(!string.IsNullOrEmpty(name));
            CodeContract.Requires(connection != null);
            CodeContract.Requires(factory != null);
            CodeContract.Requires(executionStorage != null);
            CodeContract.Requires(positionsesStorageInternal != null);
            CodeContract.Requires(ordersStorageInternal != null);
            CodeContract.Requires(accountCurrenciesFields != null);
            CodeContract.Requires(idsDispenser != null);

            this.AccountName = name;
            this.AccountId = name;

            this.factory = factory;
            this.executionStorage = executionStorage;
            this.positionsesStorage = positionsesStorageInternal;
            this.ordersStorage = ordersStorageInternal;
            this.accountCurrenciesFields = accountCurrenciesFields;
            this.idsDispenser = idsDispenser;
            this.internalCancelationTokenSource = internalCancelationTokenSource;

            this.subscription =
                connection.Subscribe((AccountValueMessage message) => message.AccountName == this.AccountName,
                    this.OnAccountValueMessage);
        }
Esempio n. 2
0
        public QuoteSubscription(IConnection connection, IIdsDispenser dispenser, IQuoteObserver observer, Contract contract)
        {
            CodeContract.Requires(connection != null);
            CodeContract.Requires(observer != null);
            CodeContract.Requires(dispenser != null);

            this.connection = connection;
            this.observer = observer;

            this.Subscribe(contract, dispenser);
        }
Esempio n. 3
0
        public ApiObjectsFactory(IConnection connection, IIdsDispenser idsDispenser, Dispatcher dispatcher,
            CancellationTokenSource internalCancellationTokenSource)
        {
            System.Diagnostics.Contracts.Contract.Requires(connection != null);
            System.Diagnostics.Contracts.Contract.Requires(idsDispenser != null);
            System.Diagnostics.Contracts.Contract.Requires(dispatcher != null);

            this.connection = connection;
            this.idsDispenser = idsDispenser;
            this.dispatcher = dispatcher;
            this.internalCancellationTokenSource = internalCancellationTokenSource;
            this.proxiesFactory = new ProxiesFactory(dispatcher);
        }
Esempio n. 4
0
        private void Subscribe(IIdsDispenser dispenser, Contract contract)
        {
            this.requestId = dispenser.NextRequestId();

            this.subscriptions = new List<IDisposable>
            {
                this.connection.Subscribe((MarketDepthMessage message) => message.RequestId == this.requestId,
                    this.OnMarketDepth),
                this.connection.SubscribeForRequestErrors(this.requestId, this.OnError)
            };

            this.SendRequest(contract, this.requestId);
        }
Esempio n. 5
0
        public MarketDepthSubscription(IConnection connection, IIdsDispenser dispenser, IMarketDepthObserver observer,
            Contract contract)
        {
            CodeContract.Requires(connection != null);
            CodeContract.Requires(dispenser != null);
            CodeContract.Requires(observer != null);

            this.connection = connection;
            this.observer = observer;
            this.marketDepthUpdatesDispatcher = new MarketDepthUpdatesDispatcher(observer);

            this.Subscribe(dispenser, contract);
        }
Esempio n. 6
0
        private void Subscribe(Contract contract, IIdsDispenser dispenser)
        {
            this.requestId = dispenser.NextRequestId();

            this.subscriptions = new List<IDisposable>
            {
                this.connection.Subscribe((TickPriceMessage message) => message.RequestId == this.requestId,
                    this.OnTickPrice),
                this.connection.SubscribeForRequestErrors(this.requestId, this.OnError)
            };

            this.SendRequest(contract);
        }
        private void Subscribe(IIdsDispenser dispenser)
        {
            var requestId = dispenser.NextRequestId();

            this.subscriptions = new List<IDisposable>
            {
                this.connection.Subscribe((ExecutionDataMessage message) => message.RequestId == requestId,
                    this.OnExecutionData),
                this.connection.Subscribe((ExecutionDataEndMessage message) => message.RequestId == requestId,
                    this.OnExecutionDataEnd)
            };

            this.SendRequest(requestId);
        }
Esempio n. 8
0
        public FindContractsOperation(IConnection connection, IIdsDispenser dispenser, SearchRequest request,
            CancellationToken cancellationToken)
        {
            CodeContract.Requires(connection != null);
            CodeContract.Requires(dispenser != null);

            cancellationToken.Register(() =>
            {
                this.subscriptions.Unsubscribe();
                this.taskCompletionSource.TrySetCanceled();
            });

            this.resultsToRetireve = request.NumberOfResults ?? int.MaxValue;
            this.Subscribe(connection, dispenser, request);
        }
Esempio n. 9
0
        private void Subscribe(IConnection connection, IIdsDispenser dispenser, SearchRequest request)
        {
            CodeContract.Requires(connection != null);
            CodeContract.Requires(dispenser != null);

            var requestId = dispenser.NextRequestId();
            
            this.subscriptions = new List<IDisposable>
            {
                connection.Subscribe((ContractDataMessage message) => message.RequestId == requestId,
                    this.OnContractDataMessage),
                connection.Subscribe((ContractDataEndMessage message) => message.RequestId == requestId,
                    this.OnContractDataEndMessage),
                connection.SubscribeForRequestErrors(requestId, this.OnError)
            };

            SendRequest(request, requestId, connection);
        }
        public CreateExecutionsStorageOperation(IConnection connection, IIdsDispenser dispenser, CancellationToken cancellationToken,
            IApiObjectsFactory factory,
            string account)
        {
            Contract.Requires(connection != null);
            Contract.Requires(factory != null);
            Contract.Requires(account != null);

            this.connection = connection;
            this.cancellationToken = cancellationToken;
            this.factory = factory;
            this.cancellationToken.Register(() =>
            {
                this.subscriptions.Unsubscribe();
                this.taskCompletionSource.TrySetCanceled();
            });
            this.account = account;
            this.Subscribe(dispenser);
        }