コード例 #1
0
ファイル: ticker.go プロジェクト: vdt/matching_engine
func (t *Ticker) Tick(m *RMessage) (ticked bool) {
	val := ints.Combine(m.originId, m.msgId)
	if t.r == nil {
		t.r = newRoot(val)
	}
	return t.r.tick(val)
}
コード例 #2
0
ファイル: tticker_test.go プロジェクト: vdt/matching_engine
func (t *simpleTicker) tick(m *RMessage) bool {
	g := ints.Combine(m.originId, m.msgId)
	if t.guidMap[g] {
		return false
	}
	t.guidMap[g] = true
	return true

}
コード例 #3
0
ファイル: tguidutil_test.go プロジェクト: vdt/matching_engine
func TestGuidFuns(t *testing.T) {
	r := rand.New(rand.NewSource(1))
	for i := 0; i < 1000; i++ {
		traderId := r.Uint32()
		tradeId := r.Uint32()
		guid := ints.Combine(traderId, tradeId)
		cTraderId := ints.High32(guid)
		cTradeId := ints.Low32(guid)
		if cTraderId != traderId {
			t.Errorf("Expecting traderId '%s' found '%s'", traderId, cTraderId)
		}
		if cTradeId != tradeId {
			t.Errorf("Expecting tradeId '%s' found '%s'", tradeId, cTradeId)
		}
	}
}
コード例 #4
0
ファイル: order.go プロジェクト: vdt/matching_engine
func (o *OrderNode) CopyFrom(from *msg.Message) {
	o.amount = from.Amount
	o.stockId = from.StockId
	o.kind = from.Kind
	o.setup(from.Price, ints.Combine(from.TraderId, from.TradeId))
}
コード例 #5
0
ファイル: rmsgSet.go プロジェクト: vdt/matching_engine
func (s *rmsgSet) contains(rm *RMessage) bool {
	g := ints.Combine(rm.originId, rm.msgId)
	_, ok := s.msgMap[g]
	return ok
}
コード例 #6
0
ファイル: rmsgSet.go プロジェクト: vdt/matching_engine
func (s *rmsgSet) remove(rm *RMessage) {
	g := ints.Combine(rm.originId, rm.msgId)
	delete(s.msgMap, g)
}
コード例 #7
0
ファイル: rmsgSet.go プロジェクト: vdt/matching_engine
func (s *rmsgSet) add(rm *RMessage) {
	g := ints.Combine(rm.originId, rm.msgId)
	s.msgMap[g] = rm
}