feed

package
v0.0.0-...-db7d511 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2019 License: MIT Imports: 14 Imported by: 1

Documentation

Overview

TODO: Renaming of stuff

Index

Constants

This section is empty.

Variables

View Source
var DefaultTLS *tls.Config

Set this static variable if you need special TLS config. Used in tests for example.

Functions

func BindFeedClient

func BindFeedClient(ps remote.PubSub, feedUri string, fc FeedClient) error

And a new func to bind the traditional way

Types

type Callback

type Callback interface {
	OnConnect(w CmdWriter, ft feedmodel.FeedType)
	OnMessage(msg *feedmodel.FeedMsg, ft feedmodel.FeedType)
	OnError(err error, ft feedmodel.FeedType)
}

type CmdWriter

type CmdWriter func(cmd *feedmodel.FeedCmd) error

type ConnWrap

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

For debugging

func (*ConnWrap) Close

func (c *ConnWrap) Close() (err error)

func (*ConnWrap) Read

func (c *ConnWrap) Read(p []byte) (n int, err error)

func (*ConnWrap) Write

func (c *ConnWrap) Write(p []byte) (n int, err error)

type FeedClient

type FeedClient func(msg *feedmodel.FeedMsg)

Convenience function to recive feed messages

func FeedSorter

func FeedSorter(fc FeedClient) (ret FeedClient)

FeedSorter will try and get out of order messages back in order. This can occure if you send the feed to a event queue. Requires that SeqId is set. Notice, we are not thread safe. If needed, add a FeedClient in between that only uses one go rutine to send. To flush cached data, send a nil. (For scripts that backtests, to make sure all is delivered)

func FeedSorterDelayedIfNotSeqId

func FeedSorterDelayedIfNotSeqId(delayMillis int64, fc FeedClient) (ret FeedClient)

FeedSorterDelayedIfNotSeqId: A MUCH slower version of FeedSorter. Will delay messages by X millis, and then sort and deligate. Use mainly for historicaol data where SeqId might not exist, or for some reason the source might be scrambled. For a realtime experience, use normal FeedSorter if your messages are out of order.

func (FeedClient) Bind

func (fc FeedClient) Bind(ps remote.PubSub, feedUri string) error

Add the function to bind, for already existing references

func (FeedClient) Handle

func (fc FeedClient) Handle(topic string, data []byte) (err error)

Implement SubHandler

type FeedDaemon

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

This object should connect to the feeds, keep them alive, and keep state

func NewFeedDaemon

func NewFeedDaemon(privSess, pubSess SessionProvider, cb Callback) (fd *FeedDaemon, err error)

func NewFeedDaemonAPI

func NewFeedDaemonAPI(api *api.ApiClient) (fd *FeedDaemon, err error)

This is not the preferred constuctor.

func (*FeedDaemon) Close

func (fd *FeedDaemon) Close() error

func (*FeedDaemon) KillSockets

func (fd *FeedDaemon) KillSockets() (string, error)

ONLY for testing....

func (*FeedDaemon) Subscribe

func (fd *FeedDaemon) Subscribe(typ, ident, market string) error

type FeedState

type FeedState struct {
	api.RequestCommandTransport
	// contains filtered or unexported fields
}

func NewFeedTransport

func NewFeedTransport(dstChan remote.StreamTopicChannel) *FeedState

func (*FeedState) AddSubscription

func (fs *FeedState) AddSubscription(cmd *feedmodel.FeedCmd) (res string)

func (*FeedState) OnConnect

func (fs *FeedState) OnConnect(w CmdWriter, ft feedmodel.FeedType)

Implement feed.Callback

func (*FeedState) OnError

func (fs *FeedState) OnError(err error, ft feedmodel.FeedType)

func (*FeedState) OnMessage

func (fs *FeedState) OnMessage(msg *feedmodel.FeedMsg, ft feedmodel.FeedType)

func (*FeedState) SetInfo

func (fs *FeedState) SetInfo(key, val string) *FeedState

type FeedSubscriptionKey

type FeedSubscriptionKey struct {
	T, I, M string
	S       int64
	Delay   bool
}

A representation of the subscription. Can generate the proper types depending on data

func (*FeedSubscriptionKey) ToFeedCmd

func (fsk *FeedSubscriptionKey) ToFeedCmd(cmdType string) (ret *feedmodel.FeedCmd, err error)

type SessionProvider

type SessionProvider func() (key, url string, err error)

func MakePrivateSessionProvider

func MakePrivateSessionProvider(api *api.ApiClient) SessionProvider

func MakePublicSessionProvider

func MakePublicSessionProvider(api *api.ApiClient) SessionProvider

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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