All pastes #812627 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-12-11 22:35 UTC
rendered paste body
import Buffer
import ThreadedBuffer
from System.Threading import *
import tickData

class AssetManager:
    def __init__(self, bufferManager):
        self.exchanges = {}
        self.exchangeSymbols = {}
        tickData.registerExchangeList(self.onExchangeList)
        tickData.registerSymbolList(self.onSymbolList)
        tickData.requestListExchanges()
        self.bufferManager = bufferManager
    def onExchangeList(self,exchanges):
        for exchange in exchanges:
            if exchange.Available:
                self.exchangeSymbols[exchange.Code] = []
                symbolRequestId = tickData.requestListSymbols(exchange.Code)
                self.exchanges[symbolRequestId] = exchange.Code

    def onSymbolList(self,symbols):
        for symbol in symbols:
            #for now, USD only
            if symbol.Currency == "USD":
                self.exchangeSymbols[self.exchanges[symbol.RequestId]] += symbol.Code
                bufferName = tickData.requestStream(tickData.requestEntity(self.exchanges[symbol.RequestId],symbol.Code))
                bufferManager.AddBuffer(bufferName,Buffer.Buffer(bufferName, 10))
                bufferManager.AddListenerToBuffer(bufferName, self.onBufferUpdate)
                #print self.exchanges[symbol.RequestId]+":"+symbol.Code
    def onBufferUpdate(self, buffer):
        print buffer.GetLastItem()



def mainThread():
    def onQuote(quote):
            bufferManager.AddItemToBuffer(quote.RequestId, quote.AskPrice)

    tickData.registerRealTimeQuote(onQuote)

    def onLogin():
        assetManager = AssetManager(bufferManager)
    tickData.registerOnLogin(onLogin)

    tickData.tickDataLogin()

bufferManager = ThreadedBuffer.ThreadedBufferManager()


main = Thread(ThreadStart(mainThread))
main.Start()

Thread.Sleep(10000)