Example #1
0
class Queue_Impl(Queue_Base):
    
    def __init__(self):
        self.queue.bestPrice += _(self)._onBestChanged
        self.bestPrice = BestPriceImpl(self)
        self.lastTrade = LastTradeImpl()
        self.queue.lastTrade += _(self)._onTraded
        self.reset()
        
    def reset(self):
        self._best = self.queue.best
        self._lastT = 0

    @property
    def side(self):
        return self.queue.side
    
    @property
    def lastPrice(self):
        return self._best.price if self._best is not None else None
        
    def _update(self, best):
        self._best = best
        self.bestPrice.fire(self)
        
    def _onTraded(self, value):
        self.link.send(_(self.lastTrade, value).set)

    def _onBestChanged(self, queue):
        best = queue.best
        self.link.send(_(self, best)._update)
        
    @property 
    def best(self):
        return self._best
    
    @property
    def empty(self):
        return self._best is None
Example #2
0
class Queue_Impl(Queue_Base):
    def __init__(self):
        self.queue.bestPrice += _(self)._onBestChanged
        self.bestPrice = BestPriceImpl(self)
        self.lastTrade = LastTradeImpl()
        self.queue.lastTrade += _(self)._onTraded
        self.reset()

    def reset(self):
        self._best = self.queue.best
        self._lastT = 0

    @property
    def side(self):
        return self.queue.side

    @property
    def lastPrice(self):
        return self._best.price if self._best is not None else None

    def _update(self, best):
        self._best = best
        self.bestPrice.fire(self)

    def _onTraded(self, value):
        self.link.send(_(self.lastTrade, value).set)

    def _onBestChanged(self, queue):
        best = queue.best
        self.link.send(_(self, best)._update)

    @property
    def best(self):
        return self._best

    @property
    def empty(self):
        return self._best is None