Пример #1
0
    private void processNextTransfer()
    {
        LTTransfer nextItem = null;

        lock (_transferLock)
        {
            if (_transfers.Count() > 0)
            {
                nextItem = _transfers[0];
                _transfers.RemoveAt(0);
            }
        }

        if (nextItem != null)
        {
            // Trigger execution of transfers
            Task.Run(() =>
            {
                Logger.Debug("process transfer: " + nextItem.ToString());
                nextItem.performTask();
            })
            .ContinueWith(delegate { processNextTransfer(); });
        }
        else
        {
            _transferInProgress = false;
        }
    }
Пример #2
0
    public override bool IsEqual(LTTransfer other)
    {
        if (IsSameType(other) && other is LTTransferTiming otherStatus)
        {
            return(_dg == otherStatus._dg && _data == otherStatus._data);
        }

        return(false);
    }
Пример #3
0
    public override bool IsEqual(LTTransfer other)
    {
        if (IsSameType(other) && other is LTTransferParticpants otherStatus)
        {
            return(_data == otherStatus._data);
        }

        return(false);
    }
Пример #4
0
    private void scheduleTransfer(LTTransfer transfer)
    {
        lock (_transferLock)
        {
            // Remove all outdated transfers
            _transfers.RemoveAll(x => x.IsEqual(transfer));
            _transfers.Add(transfer);
        }

        if (!_transferInProgress)
        {
            _transferInProgress = true;
            processNextTransfer();
        }
    }
Пример #5
0
 public bool IsSameType(LTTransfer other)
 {
     return(_type == other._type);
 }
Пример #6
0
 public abstract bool IsEqual(LTTransfer other);