Esempio n. 1
0
        private void ReceiveTradeValuationResult(HandlerResponse pvRes)
        {
            var requestId = new Guid(pvRes.RequestId);

            // ignore requests if we are not running
            if (GetState() != BasicServerState.Running)
            {
                return;
            }

            _outstandingRequests.Locked(requests =>
            {
                InternalTradeRevalRequest request;
                if (requests.TryGetValue(requestId, out request))
                {
                    // exists
                    request.LatestResult = pvRes;
                }
                else
                {
                    // not found
                    request             = new InternalTradeRevalRequest(requestId, pvRes);
                    requests[requestId] = request;
                }
            });

            // dispatch worker request
            _workerEventQueue.Dispatch(null);
        }
Esempio n. 2
0
        protected override void OnFirstCallback()
        {
            _ManagerResponseCache = _IntClient.Target.CreateCache();
            _ManagerResponseCache.Subscribe <ManagerResponse>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null);
            _CancellationsCache = _IntClient.Target.CreateCache();
            _CancellationsCache.Subscribe <CancellationRequest>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null);
            _UnassignedRequestsCache = _IntClient.Target.CreateCache();
            _UnassignedRequestsCache.Subscribe <UnassignedWorkflowRequest>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null);
            _WorkerAvailabilityCache = _IntClient.Target.CreateCache();
            _WorkerAvailabilityCache.Subscribe <WorkerAvailability>(Expr.ALL, (subs, item) => { _EventQueue.Dispatch(null); }, null);

            _HousekeepTimer = new Timer(HousekeepTimeout, null, HousekeepInterval, HousekeepInterval);
            _EventQueue.Dispatch(null);
        }
Esempio n. 3
0
        protected override void OnFirstCallback()
        {
            _WorkerResponseCache = _IntClient.Target.CreateCache();
            _WorkerResponseCache.Subscribe <WorkerResponse>(
                Expr.BoolAND(
                    Expr.IsEQU(RequestBase.Prop.WorkerHostComputer, Environment.MachineName),
                    (HostInstance == null) ?
                    Expr.IsNull(RequestBase.Prop.WorkerHostInstance) :
                    Expr.IsEQU(RequestBase.Prop.WorkerHostInstance, HostInstance)),
                (subs, item) =>
            {
                _EventQueue.Dispatch(null);
            }, null);
            _CancellationsCache = _IntClient.Target.CreateCache();
            _CancellationsCache.Subscribe <CancellationRequest>(Expr.ALL, (subs, item) =>
            {
                _EventQueue.Dispatch(null);
            }, null);
            _AssignedRequestsCache = _IntClient.Target.CreateCache();
            _AssignedRequestsCache.Subscribe <AssignedWorkflowRequest>(
                Expr.BoolAND(
                    Expr.IsEQU(RequestBase.Prop.WorkerHostComputer, Environment.MachineName),
                    (HostInstance == null) ?
                    Expr.IsNull(RequestBase.Prop.WorkerHostInstance) :
                    Expr.IsEQU(RequestBase.Prop.WorkerHostInstance, HostInstance)),
                (subs, item) =>
            {
                _EventQueue.Dispatch(null);
            }, null);

            _HousekeepTimer = new Timer(HousekeepTimeout, null, HousekeepInterval, HousekeepInterval);
            _EventQueue.Dispatch(null);
        }