events

package
v0.0.0-...-e48d177 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2016 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EventProcessor

type EventProcessor interface {
	Open() error
	Close()
	Process() error
}

EventProcessor interface

type EventPublisher

type EventPublisher interface {
	Open() error
	Close()
	Publish(envelop *OrderEventEnvelope) error
}

EventPublisher interface

type OrderAccepted

type OrderAccepted struct {
	OrderEvent
	Symbol    string  `json:"symbol"`
	Price     float64 `json:"price"`
	Quantity  uint    `json:"quantity"`
	Direction string  `json:"direction"`
}

OrderAccepted defines a order accepted event

func NewOrderAccepted

func NewOrderAccepted(orderID string, occured time.Time, symbol string, price float64, quantity uint, direction models.TradeDirection, version uint) *OrderAccepted

NewOrderAccepted creates a new order accepted event

func (*OrderAccepted) String

func (e *OrderAccepted) String() string

type OrderAmended

type OrderAmended struct {
	OrderEvent
	Quantity uint `json:"quantity"`
}

OrderAmended defines a order amended event

func NewOrderAmended

func NewOrderAmended(orderID string, quantity uint, occured time.Time, version uint) *OrderAmended

NewOrderAmended creates a new order amed pending event

func (*OrderAmended) String

func (e *OrderAmended) String() string

type OrderCancelled

type OrderCancelled struct {
	OrderEvent
}

OrderCancelled defines a order cancelled event

func NewOrderCancelled

func NewOrderCancelled(orderID string, occured time.Time, version uint) *OrderCancelled

NewOrderCancelled creates a new order amed pending event

func (*OrderCancelled) String

func (e *OrderCancelled) String() string

type OrderEvent

type OrderEvent struct {
	EventType OrderEventType `json:"event_type"`
	OrderID   string         `json:"id"`
	Occured   time.Time      `json:"occured"`
	Version   uint           `json:"version"`
}

OrderEvent defines a order base event

func NewOrderEvent

func NewOrderEvent(eventType OrderEventType, orderID string, occured time.Time, version uint) *OrderEvent

NewOrderEvent creates a new order event

func (*OrderEvent) String

func (e *OrderEvent) String() string

type OrderEventEnvelope

type OrderEventEnvelope struct {
	EventType OrderEventType `json:"event_type"`
	Payload   string         `json:"payload"`
}

OrderEventEnvelope encapsulates the event send to a subscriber

func NewOrderEventEnvelope

func NewOrderEventEnvelope(event interface{}, eventType OrderEventType) (*OrderEventEnvelope, error)

NewOrderEventEnvelope creates a new order event envelope from a event

func (*OrderEventEnvelope) GetOrderEvent

func (e *OrderEventEnvelope) GetOrderEvent() (interface{}, error)

GetOrderEvent returns the specific order event

type OrderEventProcessor

type OrderEventProcessor struct {
	// contains filtered or unexported fields
}

OrderEventProcessor defines the order event struct

func NewOrderEventProcessor

func NewOrderEventProcessor(url string, subExchange string, subQueue string, pubExchange string, processor func(envelope *OrderEventEnvelope) (string, error)) *OrderEventProcessor

NewOrderEventProcessor creates a new order event processor

func (*OrderEventProcessor) Close

func (p *OrderEventProcessor) Close()

Close handles the closing of connection and channel

func (*OrderEventProcessor) Open

func (p *OrderEventProcessor) Open() error

Open handles the opening of connection, channel, exchange and queue

func (*OrderEventProcessor) Process

func (p *OrderEventProcessor) Process() error

Process starts processing events

type OrderEventStored

type OrderEventStored struct {
	OrderEvent
}

OrderEventStored defines a order event stored

func NewOrderEventStored

func NewOrderEventStored(orderID string, occured time.Time, version uint) *OrderEventStored

NewOrderEventStored creates a new order event stored event

func (*OrderEventStored) String

func (e *OrderEventStored) String() string

type OrderEventType

type OrderEventType string

OrderEventType defines a order event type enumeration

const (
	OrderAcceptedType    OrderEventType = "OrderAccepted"
	OrderAmendedType     OrderEventType = "OrderAmended"
	OrderCancelledType   OrderEventType = "OrderCancelled"
	OrderTradedType      OrderEventType = "OrderTraded"
	OrderEventStoredType OrderEventType = "OrderEventStored"
)

Order Event type constants

func GetEventType

func GetEventType(event interface{}) (OrderEventType, error)

GetEventType returns the event type from a event

type OrderTraded

type OrderTraded struct {
	OrderEvent
	Price    float64 `json:"price"`
	Quantity uint    `json:"quantity"`
}

OrderTraded defines a order traded event

func NewOrderTraded

func NewOrderTraded(orderID string, occured time.Time, price float64, quantity uint, version uint) *OrderTraded

NewOrderTraded creates a new order traded event

func (*OrderTraded) String

func (e *OrderTraded) String() string

type RabbitMqEventPublisher

type RabbitMqEventPublisher struct {
	// contains filtered or unexported fields
}

RabbitMqEventPublisher create implementation of a rabbit mq order event publisher

func NewRabbitMqEventPublisher

func NewRabbitMqEventPublisher(url string, exchange string) *RabbitMqEventPublisher

NewRabbitMqEventPublisher creates a new rabbit mq event publisher

func (*RabbitMqEventPublisher) Close

func (p *RabbitMqEventPublisher) Close()

Close handles the connection and channel closing

func (*RabbitMqEventPublisher) Open

func (p *RabbitMqEventPublisher) Open() error

Open handles the opening of a connection, setting up a channel and declaring a exchange

func (*RabbitMqEventPublisher) Publish

func (p *RabbitMqEventPublisher) Publish(envelope *OrderEventEnvelope) error

Publish publishes a order event envelope

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL