Documentation ¶
Overview ¶
Package quickfix is a full featured messaging engine for the FIX protocol. It is a 100% Go open source implementation of the popular C++ QuickFIX engine (http://quickfixengine.org).
User manual and additional information available at http://quickfixgo.org
Index ¶
- Constants
- Variables
- func CleanupInvalidStoppedSession()
- func IsAliveSession(sessionID SessionID) bool
- func ParseMessage(msg *Message, rawMessage *bytes.Buffer) (err error)
- func ParseMessageWithDataDictionary(msg *Message, rawMessage *bytes.Buffer, ...) (err error)
- func Send(m Messagable) (err error)
- func SendToAliveSession(m Messagable, sessionID SessionID) (err error)
- func SendToAliveSessions(m Messagable) (err error)
- func SendToSession(m Messagable, sessionID SessionID) (err error)
- func SendToTarget(m Messagable, sessionID SessionID) error
- func StoreMessageToSession(m Messagable, sessionID SessionID) (err error)
- func UnregisterSession(sessionID SessionID) (err error)
- func WaitForLogon(sessionID SessionID) <-chan struct{}
- type Acceptor
- func (a *Acceptor) GetAliveSessionIDs() []SessionID
- func (a *Acceptor) GetSessionIDs() []SessionID
- func (a *Acceptor) IsAliveSession(sessionID SessionID) bool
- func (a *Acceptor) RemoteAddr(sessionID SessionID) (net.Addr, bool)
- func (a *Acceptor) SendToAliveSession(m Messagable, sessionID SessionID) (err error)
- func (a *Acceptor) SendToAliveSessions(m Messagable) (err error)
- func (a *Acceptor) SetConnectionValidator(validator ConnectionValidator)
- func (a *Acceptor) Start() (err error)
- func (a *Acceptor) Stop()
- type Application
- type Body
- type BuildMessageInput
- type BuildMessageOutput
- type ConditionallyRequiredSetting
- type ConnectionValidator
- type ErrorBySessionID
- type FIXBoolean
- type FIXBytes
- type FIXDecimal
- type FIXFloat
- type FIXInt
- type FIXString
- type FIXUTCTimestamp
- type Field
- type FieldGroup
- type FieldGroupReader
- type FieldGroupWriter
- type FieldMap
- func (m *FieldMap) Clear()
- func (m *FieldMap) CopyInto(to *FieldMap)
- func (m *FieldMap) DeleteTag(tag Tag)
- func (m FieldMap) Get(parser Field) MessageRejectError
- func (m FieldMap) GetBool(tag Tag) (bool, MessageRejectError)
- func (m FieldMap) GetBytes(tag Tag) ([]byte, MessageRejectError)
- func (m FieldMap) GetField(tag Tag, parser FieldValueReader) MessageRejectError
- func (m FieldMap) GetGroup(parser FieldGroupReader) MessageRejectError
- func (m FieldMap) GetInt(tag Tag) (int, MessageRejectError)
- func (m FieldMap) GetString(tag Tag) (string, MessageRejectError)
- func (m FieldMap) GetTime(tag Tag) (t time.Time, err MessageRejectError)
- func (m FieldMap) Has(tag Tag) bool
- func (t FieldMap) Len() int
- func (t FieldMap) Less(i, j int) bool
- func (m *FieldMap) Set(field FieldWriter) *FieldMap
- func (m *FieldMap) SetBool(tag Tag, value bool) *FieldMap
- func (m *FieldMap) SetBytes(tag Tag, value []byte) *FieldMap
- func (m *FieldMap) SetField(tag Tag, field FieldValueWriter) *FieldMap
- func (m *FieldMap) SetGroup(field FieldGroupWriter) *FieldMap
- func (m *FieldMap) SetInt(tag Tag, value int) *FieldMap
- func (m *FieldMap) SetString(tag Tag, value string) *FieldMap
- func (t FieldMap) Swap(i, j int)
- func (m FieldMap) Tags() []Tag
- type FieldValue
- type FieldValueReader
- type FieldValueWriter
- type FieldWriter
- type Group
- type GroupItem
- type GroupTemplate
- type Header
- type IncorrectFormatForSetting
- type Initiator
- func (i *Initiator) GetAliveSessionIDs() []SessionID
- func (i *Initiator) GetSessionIDs() []SessionID
- func (i *Initiator) IsAliveSession(sessionID SessionID) bool
- func (i *Initiator) SendToAliveSession(m Messagable, sessionID SessionID) (err error)
- func (i *Initiator) SendToAliveSessions(m Messagable) (err error)
- func (i *Initiator) Start() (err error)
- func (i *Initiator) Stop()
- type Log
- type LogFactory
- type Messagable
- type Message
- type MessageRejectError
- func ConditionallyRequiredFieldMissing(tag Tag) MessageRejectError
- func IncorrectDataFormatForValue(tag Tag) MessageRejectError
- func InvalidMessageType() MessageRejectError
- func InvalidTagNumber(tag Tag) MessageRejectError
- func NewBusinessMessageRejectError(err string, rejectReason int, refTagID *Tag) MessageRejectError
- func NewBusinessMessageRejectErrorWithRefID(err string, rejectReason int, businessRejectRefID string, refTagID *Tag) MessageRejectError
- func NewMessageRejectError(err string, rejectReason int, refTagID *Tag) MessageRejectError
- func NewOtherBusinessRejectError(err string) MessageRejectError
- func NewOtherRejectError(err string) MessageRejectError
- func RequiredTagMissing(tag Tag) MessageRejectError
- func TagNotDefinedForThisMessageType(tag Tag) MessageRejectError
- func TagSpecifiedWithoutAValue(tag Tag) MessageRejectError
- func UnsupportedMessageType() MessageRejectError
- func ValueIsIncorrect(tag Tag) MessageRejectError
- type MessageRoute
- type MessageRouter
- type MessageStore
- type MessageStoreFactory
- func NewFileStoreFactory(settings *Settings) MessageStoreFactory
- func NewMemoryStoreFactory() MessageStoreFactory
- func NewMongoStoreFactory(settings *Settings) MessageStoreFactory
- func NewMongoStoreFactoryPrefixed(settings *Settings, collectionsPrefix string) MessageStoreFactory
- func NewSQLStoreFactory(settings *Settings) MessageStoreFactory
- type MsgSeqNumCursor
- type RejectLogon
- type RepeatingGroup
- type SessionID
- type SessionSettings
- func (s SessionSettings) BoolSetting(setting string) (bool, error)
- func (s *SessionSettings) DurationSetting(setting string) (val time.Duration, err error)
- func (s *SessionSettings) HasSetting(setting string) bool
- func (s *SessionSettings) Init()
- func (s *SessionSettings) IntSetting(setting string) (val int, err error)
- func (s *SessionSettings) Set(setting string, val string)
- func (s *SessionSettings) Setting(setting string) (string, error)
- type Settings
- type Tag
- type TagValue
- type TimestampPrecision
- type Trailer
- type Validator
- type ValidatorSettings
Constants ¶
const ( BeginStringFIX40 = "FIX.4.0" BeginStringFIX41 = "FIX.4.1" BeginStringFIX42 = "FIX.4.2" BeginStringFIX43 = "FIX.4.3" BeginStringFIX44 = "FIX.4.4" BeginStringFIXT11 = "FIXT.1.1" )
FIX BeginString string values
const ( ApplVerIDFIX27 = "0" ApplVerIDFIX30 = "1" ApplVerIDFIX40 = "2" ApplVerIDFIX41 = "3" ApplVerIDFIX42 = "4" ApplVerIDFIX43 = "5" ApplVerIDFIX44 = "6" ApplVerIDFIX50 = "7" ApplVerIDFIX50SP1 = "8" ApplVerIDFIX50SP2 = "9" )
FIX ApplVerID string values
Variables ¶
var ErrAccessToClosedStore = errors.New("this store is already closed")
ErrAccessToClosedStore defines error on accessing to closed message store.
var ErrDoNotLoggedOnSession = errors.New(doNotLoggedOnSessionMessage)
ErrDoNotLoggedOnSession defines no loggedOn session error.
var ErrDoNotSend = errors.New("Do Not Send")
ErrDoNotSend is a convenience error to indicate a DoNotSend in ToApp
var ErrDuplicateSessionID = errors.New("duplicate SessionID")
ErrDuplicateSessionID defines duplicate SessionID
var ErrExistSession = errors.New("exist session")
ErrExistSession defines already exist session error.
var ErrSendToStoppedSession = errors.New("this session is stopped")
ErrSendToStoppedSession defines error on sending to stopped session.
var ErrUnknownSession = errors.New("unknown session")
ErrUnknownSession defines unknown session
Functions ¶
func CleanupInvalidStoppedSession ¶
func CleanupInvalidStoppedSession()
CleanupInvalidStoppedSession deletes stopped sessions that has expired. If using DynamicQualifier and DynamicStoppedSessionKeepTime, call this function periodically to close invalid sessions.
func IsAliveSession ¶
IsAliveSession This function checks if the session is a logged on session or not.
func ParseMessage ¶ added in v0.3.0
ParseMessage constructs a Message from a byte slice wrapping a FIX message.
func ParseMessageWithDataDictionary ¶ added in v0.6.0
func ParseMessageWithDataDictionary( msg *Message, rawMessage *bytes.Buffer, transportDataDictionary *datadictionary.DataDictionary, applicationDataDictionary *datadictionary.DataDictionary, ) (err error)
ParseMessageWithDataDictionary constructs a Message from a byte slice wrapping a FIX message using an optional session and application DataDictionary for reference.
func Send ¶
func Send(m Messagable) (err error)
Send determines the session to send Messagable using header fields BeginString, TargetCompID, SenderCompID
func SendToAliveSession ¶
func SendToAliveSession(m Messagable, sessionID SessionID) (err error)
SendToAliveSession This function send message for logged on session.
func SendToAliveSessions ¶
func SendToAliveSessions(m Messagable) (err error)
SendToAliveSessions This function send messages for logged on sessions.
func SendToSession ¶
func SendToSession(m Messagable, sessionID SessionID) (err error)
SendToSession This function send message on session. If the session is stopped, It just saves the message without sending it.
func SendToTarget ¶
func SendToTarget(m Messagable, sessionID SessionID) error
SendToTarget sends a message based on the sessionID. Convenient for use in FromApp since it provides a session ID for incoming messages
func StoreMessageToSession ¶
func StoreMessageToSession(m Messagable, sessionID SessionID) (err error)
StoreMessageToSession stores a message on session. If returns ErrExistSession, please call SendToSession because already connected session.
func UnregisterSession ¶
UnregisterSession removes a session from the set of known sessions
func WaitForLogon ¶
func WaitForLogon(sessionID SessionID) <-chan struct{}
WaitForLogon returns channel to receive logon event by specific session. if non-existing sessionID specified, it returns nil which blocks forever.
Types ¶
type Acceptor ¶
type Acceptor struct {
// contains filtered or unexported fields
}
Acceptor accepts connections from FIX clients and manages the associated sessions.
func NewAcceptor ¶
func NewAcceptor(app Application, storeFactory MessageStoreFactory, settings *Settings, logFactory LogFactory) (a *Acceptor, err error)
NewAcceptor creates and initializes a new Acceptor.
func (*Acceptor) GetAliveSessionIDs ¶
GetAliveSessionIDs This function returns loggedOn sessionID list.
func (*Acceptor) GetSessionIDs ¶
GetSessionIDs This function returns managed all sessionID list.
func (*Acceptor) IsAliveSession ¶
IsAliveSession This function checks if the session is a logged on session or not.
func (*Acceptor) RemoteAddr ¶
RemoteAddr Get remote IP address for a given session.
func (*Acceptor) SendToAliveSession ¶
func (a *Acceptor) SendToAliveSession(m Messagable, sessionID SessionID) (err error)
SendToAliveSession This function send message for logged on session.
func (*Acceptor) SendToAliveSessions ¶
func (a *Acceptor) SendToAliveSessions(m Messagable) (err error)
SendToAliveSessions This function send messages for logged on sessions.
func (*Acceptor) SetConnectionValidator ¶
func (a *Acceptor) SetConnectionValidator(validator ConnectionValidator)
SetConnectionValidator sets an optional connection validator. Use it when you need a custom authentication logic that includes lower level interactions, like mTLS auth or IP whitelistening. To remove a previously set validator call it with a nil value:
a.SetConnectionValidator(nil)
type Application ¶
type Application interface { //Notification of a session begin created. OnCreate(sessionID SessionID) //Notification of a session successfully logging on. OnLogon(sessionID SessionID) //Notification of a session logging off or disconnecting. OnLogout(sessionID SessionID) //Notification of admin message being sent to target. ToAdmin(message *Message, sessionID SessionID) //Notification of app message being sent to target. ToApp(message *Message, sessionID SessionID) error //Notification of admin message being received from target. FromAdmin(message *Message, sessionID SessionID) MessageRejectError //Notification of app message being received from target. FromApp(message *Message, sessionID SessionID) MessageRejectError }
The Application interface should be implemented by FIX Applications. This is the primary interface for processing messages from a FIX Session.
type Body ¶ added in v0.3.0
type Body struct{ FieldMap }
Body is the primary application section of a FIX message
type BuildMessageInput ¶
type BuildMessageInput struct { Msg *Message InReplyTo *Message EnableLastMsgSeqNumProcessed bool IsResetSeqNum bool }
BuildMessageInput stores for building message data
type BuildMessageOutput ¶
BuildMessageOutput stores build message output data
type ConditionallyRequiredSetting ¶ added in v0.5.0
type ConditionallyRequiredSetting struct {
Setting string
}
ConditionallyRequiredSetting indicates a missing setting
func (ConditionallyRequiredSetting) Error ¶ added in v0.5.0
func (e ConditionallyRequiredSetting) Error() string
type ConnectionValidator ¶
type ConnectionValidator interface { // Validate the connection for validity. This can be a part of authentication process. // For example, you may tie up a SenderCompID to an IP range, or to a specific TLS certificate as a part of mTLS. Validate(netConn net.Conn, session SessionID) error }
ConnectionValidator is an interface allowing to implement a custom authentication logic.
type ErrorBySessionID ¶
type ErrorBySessionID struct { ErrorMap map[SessionID]error // contains filtered or unexported fields }
ErrorBySessionID This struct has error map by sessionID.
func NewErrorBySessionID ¶
func NewErrorBySessionID(err error) (response *ErrorBySessionID)
NewErrorBySessionID This function returns NewErrorBySessionID object.
type FIXBoolean ¶
type FIXBoolean bool
FIXBoolean is a FIX Boolean value, implements FieldValue.
func (FIXBoolean) Bool ¶ added in v0.4.0
func (f FIXBoolean) Bool() bool
Bool converts the FIXBoolean value to bool
func (*FIXBoolean) Read ¶
func (f *FIXBoolean) Read(bytes []byte) error
func (FIXBoolean) Write ¶
func (f FIXBoolean) Write() []byte
type FIXBytes ¶ added in v0.6.0
type FIXBytes []byte
FIXBytes is a generic FIX field value, implements FieldValue. Enables zero copy read from a FieldMap
type FIXDecimal ¶ added in v0.5.0
type FIXDecimal struct { decimal.Decimal //Scale is the number of digits after the decimal point when Writing the field value as a FIX value Scale int32 }
FIXDecimal is a FIX Float Value that implements an arbitrary precision fixed-point decimal. Implements FieldValue
func (*FIXDecimal) Read ¶ added in v0.5.0
func (d *FIXDecimal) Read(bytes []byte) (err error)
func (FIXDecimal) Write ¶ added in v0.5.0
func (d FIXDecimal) Write() []byte
type FIXFloat ¶
type FIXFloat float64
FIXFloat is a FIX Float Value, implements FieldValue
type FIXUTCTimestamp ¶
type FIXUTCTimestamp struct { time.Time Precision TimestampPrecision }
FIXUTCTimestamp is a FIX UTC Timestamp value, implements FieldValue
func (*FIXUTCTimestamp) Read ¶
func (f *FIXUTCTimestamp) Read(bytes []byte) (err error)
func (FIXUTCTimestamp) Write ¶
func (f FIXUTCTimestamp) Write() []byte
type Field ¶
type Field interface { FieldWriter FieldValueReader }
Field is the interface implemented by all typed Fields in a Message
type FieldGroup ¶ added in v0.3.0
FieldGroup is the interface implemented by all typed Groups in a Message
type FieldGroupReader ¶ added in v0.3.0
FieldGroupReader is an interface for reading a FieldGroup
type FieldGroupWriter ¶ added in v0.3.0
FieldGroupWriter is an interface for writing a FieldGroup
type FieldMap ¶
type FieldMap struct {
// contains filtered or unexported fields
}
FieldMap is a collection of fix fields that make up a fix message.
func (FieldMap) Get ¶
func (m FieldMap) Get(parser Field) MessageRejectError
Get parses out a field in this FieldMap. Returned reject may indicate the field is not present, or the field value is invalid.
func (FieldMap) GetBool ¶ added in v0.6.0
func (m FieldMap) GetBool(tag Tag) (bool, MessageRejectError)
GetBool is a GetField wrapper for bool fields
func (FieldMap) GetBytes ¶ added in v0.6.0
func (m FieldMap) GetBytes(tag Tag) ([]byte, MessageRejectError)
GetBytes is a zero-copy GetField wrapper for []bytes fields
func (FieldMap) GetField ¶
func (m FieldMap) GetField(tag Tag, parser FieldValueReader) MessageRejectError
GetField parses of a field with Tag tag. Returned reject may indicate the field is not present, or the field value is invalid.
func (FieldMap) GetGroup ¶
func (m FieldMap) GetGroup(parser FieldGroupReader) MessageRejectError
GetGroup is a Get function specific to Group Fields.
func (FieldMap) GetInt ¶ added in v0.2.0
func (m FieldMap) GetInt(tag Tag) (int, MessageRejectError)
GetInt is a GetField wrapper for int fields
func (FieldMap) GetString ¶ added in v0.2.0
func (m FieldMap) GetString(tag Tag) (string, MessageRejectError)
GetString is a GetField wrapper for string fields
func (FieldMap) GetTime ¶ added in v0.6.0
func (m FieldMap) GetTime(tag Tag) (t time.Time, err MessageRejectError)
GetTime is a GetField wrapper for utc timestamp fields
func (*FieldMap) Set ¶
func (m *FieldMap) Set(field FieldWriter) *FieldMap
Set is a setter for fields
func (*FieldMap) SetField ¶
func (m *FieldMap) SetField(tag Tag, field FieldValueWriter) *FieldMap
SetField sets the field with Tag tag
func (*FieldMap) SetGroup ¶
func (m *FieldMap) SetGroup(field FieldGroupWriter) *FieldMap
SetGroup is a setter specific to group fields
type FieldValue ¶
type FieldValue interface { FieldValueWriter FieldValueReader }
The FieldValue interface is used to write/extract typed field values to/from raw bytes
type FieldValueReader ¶
type FieldValueReader interface { //Reads the contents of the []byte into FieldValue. Returns an error if there are issues in the data processing Read([]byte) error }
FieldValueReader is an interface for reading field values
type FieldValueWriter ¶
type FieldValueWriter interface { //Writes out the contents of the FieldValue to a []byte Write() []byte }
FieldValueWriter is an interface for writing field values
type FieldWriter ¶
type FieldWriter interface { Tag() Tag FieldValueWriter }
FieldWriter is an interface for a writing a field
type Group ¶
type Group struct{ FieldMap }
Group is a group of fields occurring in a repeating group
type GroupItem ¶
type GroupItem interface { //Tag returns the tag identifying this GroupItem Tag() Tag //Parameter to Read is tagValues. For most fields, only the first tagValue will be required. //The length of the slice extends from the tagValue mapped to the field to be read through the //following fields. This can be useful for GroupItems made up of repeating groups. // //The Read function returns the remaining tagValues not processed by the GroupItem. If there was a //problem reading the field, an error may be returned Read([]TagValue) ([]TagValue, error) //Clone makes a copy of this GroupItem Clone() GroupItem }
GroupItem interface is used to construct repeating group templates
func GroupElement ¶
GroupElement returns a GroupItem made up of a single field
type GroupTemplate ¶
type GroupTemplate []GroupItem
GroupTemplate specifies the group item order for a RepeatingGroup
func (GroupTemplate) Clone ¶ added in v0.4.0
func (gt GroupTemplate) Clone() GroupTemplate
Clone makes a copy of this GroupTemplate
type Header ¶ added in v0.3.0
type Header struct{ FieldMap }
Header is first section of a FIX Message
type IncorrectFormatForSetting ¶ added in v0.5.0
IncorrectFormatForSetting indicates a setting that is incorrectly formatted
func (IncorrectFormatForSetting) Error ¶ added in v0.5.0
func (e IncorrectFormatForSetting) Error() string
type Initiator ¶
type Initiator struct {
// contains filtered or unexported fields
}
Initiator initiates connections and processes messages for all sessions.
func NewInitiator ¶
func NewInitiator(app Application, storeFactory MessageStoreFactory, appSettings *Settings, logFactory LogFactory) (*Initiator, error)
NewInitiator creates and initializes a new Initiator.
func (*Initiator) GetAliveSessionIDs ¶
GetAliveSessionIDs This function returns loggedOn sessionID list.
func (*Initiator) GetSessionIDs ¶
GetSessionIDs This function returns sessionID list.
func (*Initiator) IsAliveSession ¶
IsAliveSession This function checks if the session is a logged on session or not.
func (*Initiator) SendToAliveSession ¶
func (i *Initiator) SendToAliveSession(m Messagable, sessionID SessionID) (err error)
SendToAliveSession This function send message for logged on session.
func (*Initiator) SendToAliveSessions ¶
func (i *Initiator) SendToAliveSessions(m Messagable) (err error)
SendToAliveSessions This function send messages for logged on sessions.
type Log ¶
type Log interface { //log incoming fix message OnIncoming([]byte) //log outgoing fix message OnOutgoing([]byte) //log fix event OnEvent(string) //log fix event according to format specifier OnEventf(string, ...interface{}) }
Log is a generic interface for logging FIX messages and events.
type LogFactory ¶
type LogFactory interface { //global log Create() (Log, error) //session specific log CreateSessionLog(sessionID SessionID) (Log, error) }
The LogFactory interface creates global and session specific Log instances
func NewCustomLogFactory ¶
func NewCustomLogFactory(logFunc func(msg string, keysAndValues ...interface{})) LogFactory
NewCustomLogFactory creates an instance of LogFactory that logs messages and events using the provided log function
func NewFileLogFactory ¶
func NewFileLogFactory(settings *Settings) (LogFactory, error)
NewFileLogFactory creates an instance of LogFactory that writes messages and events to file. The location of global and session log files is configured via FileLogPath.
func NewNullLogFactory ¶
func NewNullLogFactory() LogFactory
NewNullLogFactory creates an instance of LogFactory that returns no-op loggers.
func NewScreenLogFactory ¶
func NewScreenLogFactory() LogFactory
NewScreenLogFactory creates an instance of LogFactory that writes messages and events to stdout.
type Messagable ¶ added in v0.4.0
type Messagable interface {
ToMessage() *Message
}
Messagable is a Message or something that can be converted to a Message
type Message ¶
type Message struct { Header Header Trailer Trailer Body Body //ReceiveTime is the time that this message was read from the socket connection ReceiveTime time.Time // contains filtered or unexported fields }
Message is a FIX Message abstraction.
func NewMessage ¶
func NewMessage() *Message
NewMessage returns a newly initialized Message instance
func (*Message) CopyInto ¶
CopyInto erases the dest messages and copies the curreny message content into it.
func (*Message) IsMsgTypeOf ¶ added in v0.6.0
IsMsgTypeOf returns true if the Header contains MsgType (tag 35) field and its value is the specified one.
func (*Message) MsgType ¶ added in v0.6.0
func (m *Message) MsgType() (string, MessageRejectError)
MsgType returns MsgType (tag 35) field's value
type MessageRejectError ¶
type MessageRejectError interface { error //RejectReason, tag 373 for session rejects, tag 380 for business rejects. RejectReason() int BusinessRejectRefID() string RefTagID() *Tag IsBusinessReject() bool }
MessageRejectError is a type of error that can correlate to a message reject.
func ConditionallyRequiredFieldMissing ¶
func ConditionallyRequiredFieldMissing(tag Tag) MessageRejectError
ConditionallyRequiredFieldMissing indicates that the requested field could not be found in the FIX message.
func IncorrectDataFormatForValue ¶ added in v0.3.0
func IncorrectDataFormatForValue(tag Tag) MessageRejectError
IncorrectDataFormatForValue returns an error indicating a field that cannot be parsed as the type required.
func InvalidMessageType ¶ added in v0.3.0
func InvalidMessageType() MessageRejectError
InvalidMessageType returns an error to indicate an invalid message type
func InvalidTagNumber ¶ added in v0.3.0
func InvalidTagNumber(tag Tag) MessageRejectError
InvalidTagNumber returns a validation error for messages with invalid tags.
func NewBusinessMessageRejectError ¶
func NewBusinessMessageRejectError(err string, rejectReason int, refTagID *Tag) MessageRejectError
NewBusinessMessageRejectError returns a MessageRejectError with the given error mesage, reject reason, and optional reftagid. Reject is treated as a business level reject
func NewBusinessMessageRejectErrorWithRefID ¶
func NewBusinessMessageRejectErrorWithRefID(err string, rejectReason int, businessRejectRefID string, refTagID *Tag) MessageRejectError
NewBusinessMessageRejectErrorWithRefID returns a MessageRejectError with the given error mesage, reject reason, refID, and optional reftagid. Reject is treated as a business level reject
func NewMessageRejectError ¶
func NewMessageRejectError(err string, rejectReason int, refTagID *Tag) MessageRejectError
NewMessageRejectError returns a MessageRejectError with the given error message, reject reason, and optional reftagid
func NewOtherBusinessRejectError ¶
func NewOtherBusinessRejectError(err string) MessageRejectError
NewOtherBusinessRejectError returns a BusinessMessageRejectError with the given error message
func NewOtherRejectError ¶
func NewOtherRejectError(err string) MessageRejectError
NewOtherRejectError returns a MessageRejectError with the given error message
func RequiredTagMissing ¶ added in v0.3.0
func RequiredTagMissing(tag Tag) MessageRejectError
RequiredTagMissing returns a validation error when a required field cannot be found in a message.
func TagNotDefinedForThisMessageType ¶ added in v0.3.0
func TagNotDefinedForThisMessageType(tag Tag) MessageRejectError
TagNotDefinedForThisMessageType returns an error for an invalid tag appearing in a message.
func TagSpecifiedWithoutAValue ¶ added in v0.3.0
func TagSpecifiedWithoutAValue(tag Tag) MessageRejectError
TagSpecifiedWithoutAValue returns a validation error for when a field has no value.
func UnsupportedMessageType ¶ added in v0.3.0
func UnsupportedMessageType() MessageRejectError
UnsupportedMessageType returns an error to indicate an unhandled message.
func ValueIsIncorrect ¶
func ValueIsIncorrect(tag Tag) MessageRejectError
ValueIsIncorrect returns an error indicating a field with value that is not valid.
type MessageRoute ¶
type MessageRoute func(msg *Message, sessionID SessionID) MessageRejectError
A MessageRoute is a function that can process a fromApp/fromAdmin callback
type MessageRouter ¶
type MessageRouter struct {
// contains filtered or unexported fields
}
A MessageRouter is a mutex for MessageRoutes
func NewMessageRouter ¶
func NewMessageRouter() *MessageRouter
NewMessageRouter returns an initialized MessageRouter instance
func (MessageRouter) AddRoute ¶
func (c MessageRouter) AddRoute(beginString string, msgType string, router MessageRoute)
AddRoute adds a route to the MessageRouter instance keyed to begin string and msgType.
func (MessageRouter) Route ¶
func (c MessageRouter) Route(msg *Message, sessionID SessionID) MessageRejectError
Route may be called from the fromApp/fromAdmin callbacks. Messages that cannot be routed will be rejected with UnsupportedMessageType.
type MessageStore ¶
type MessageStore interface { NextSenderMsgSeqNum() int NextTargetMsgSeqNum() int IncrNextSenderMsgSeqNum() error IncrNextTargetMsgSeqNum() error SetNextSenderMsgSeqNum(next int) error SetNextTargetMsgSeqNum(next int) error CreationTime() time.Time SaveMessage(seqNum int, msg []byte) error GetMessages(beginSeqNum, endSeqNum int) ([][]byte, error) Refresh() error Reset() error Close() error SaveMessageWithTx(messageBuildData *BuildMessageInput) (output *BuildMessageOutput, err error) BuildMessage(messageBuildData *BuildMessageInput) (output *BuildMessageOutput, err error) }
The MessageStore interface provides methods to record and retrieve messages for resend purposes
type MessageStoreFactory ¶
type MessageStoreFactory interface {
Create(sessionID SessionID) (MessageStore, error)
}
The MessageStoreFactory interface is used by session to create a session specific message store
func NewFileStoreFactory ¶ added in v0.2.0
func NewFileStoreFactory(settings *Settings) MessageStoreFactory
NewFileStoreFactory returns a file-based implementation of MessageStoreFactory
func NewMemoryStoreFactory ¶
func NewMemoryStoreFactory() MessageStoreFactory
NewMemoryStoreFactory returns a MessageStoreFactory instance that created in-memory MessageStores
func NewMongoStoreFactory ¶
func NewMongoStoreFactory(settings *Settings) MessageStoreFactory
NewMongoStoreFactory returns a mongo-based implementation of MessageStoreFactory
func NewMongoStoreFactoryPrefixed ¶
func NewMongoStoreFactoryPrefixed(settings *Settings, collectionsPrefix string) MessageStoreFactory
NewMongoStoreFactoryPrefixed returns a mongo-based implementation of MessageStoreFactory, with prefix on collections
func NewSQLStoreFactory ¶ added in v0.2.0
func NewSQLStoreFactory(settings *Settings) MessageStoreFactory
NewSQLStoreFactory returns a sql-based implementation of MessageStoreFactory
type MsgSeqNumCursor ¶
type MsgSeqNumCursor interface { NextSenderMsgSeqNum() int NextTargetMsgSeqNum() int Reset() error }
MsgSeqNumCursor interface provides methods for referencing/resetting the SeqNum position
type RejectLogon ¶ added in v0.5.0
type RejectLogon struct {
Text string
}
RejectLogon indicates the application is rejecting permission to logon. Implements MessageRejectError
func (RejectLogon) BusinessRejectRefID ¶
func (RejectLogon) BusinessRejectRefID() string
BusinessRejectRefID implements MessageRejectError
func (RejectLogon) Error ¶ added in v0.5.0
func (e RejectLogon) Error() string
func (RejectLogon) IsBusinessReject ¶ added in v0.5.0
func (RejectLogon) IsBusinessReject() bool
IsBusinessReject implements MessageRejectError
func (RejectLogon) RefTagID ¶ added in v0.5.0
func (RejectLogon) RefTagID() *Tag
RefTagID implements MessageRejectError
func (RejectLogon) RejectReason ¶ added in v0.5.0
func (RejectLogon) RejectReason() int
RejectReason implements MessageRejectError
type RepeatingGroup ¶
type RepeatingGroup struct {
// contains filtered or unexported fields
}
RepeatingGroup is a FIX Repeating Group type
func NewRepeatingGroup ¶ added in v0.3.0
func NewRepeatingGroup(tag Tag, template GroupTemplate) *RepeatingGroup
NewRepeatingGroup returns an initilized RepeatingGroup instance
func (*RepeatingGroup) Add ¶
func (f *RepeatingGroup) Add() *Group
Add appends a new group to the RepeatingGroup and returns the new Group
func (RepeatingGroup) Clone ¶ added in v0.4.0
func (f RepeatingGroup) Clone() GroupItem
Clone makes a copy of this RepeatingGroup (tag, template)
func (RepeatingGroup) Get ¶ added in v0.3.0
func (f RepeatingGroup) Get(i int) *Group
Get returns the ith group in this RepeatingGroup
func (RepeatingGroup) Len ¶ added in v0.3.0
func (f RepeatingGroup) Len() int
Len returns the number of Groups in this RepeatingGroup
func (*RepeatingGroup) Read ¶ added in v0.3.0
func (f *RepeatingGroup) Read(tv []TagValue) ([]TagValue, error)
func (RepeatingGroup) Tag ¶ added in v0.3.0
func (f RepeatingGroup) Tag() Tag
Tag returns the Tag for this repeating Group
func (RepeatingGroup) Write ¶ added in v0.3.0
func (f RepeatingGroup) Write() []TagValue
Write returns tagValues for all Items in the repeating group ordered by Group sequence and Group template order
type SessionID ¶
type SessionID struct {
BeginString, TargetCompID, TargetSubID, TargetLocationID, SenderCompID, SenderSubID, SenderLocationID, Qualifier string
}
SessionID is a unique identifer of a Session
func GetAliveSessionIDs ¶
func GetAliveSessionIDs() []SessionID
GetAliveSessionIDs This function returns loggedOn sessionID list.
func GetSessionIDs ¶
func GetSessionIDs() []SessionID
GetSessionIDs This function returns sessionID list.
type SessionSettings ¶
type SessionSettings struct {
// contains filtered or unexported fields
}
SessionSettings maps session settings to values with typed accessors.
func NewSessionSettings ¶
func NewSessionSettings() *SessionSettings
NewSessionSettings returns a newly initialized SessionSettings instance
func (SessionSettings) BoolSetting ¶
func (s SessionSettings) BoolSetting(setting string) (bool, error)
BoolSetting returns the requested setting parsed as a boolean. Returns an errror if the setting is not set or cannot be parsed as a bool.
func (*SessionSettings) DurationSetting ¶ added in v0.3.0
func (s *SessionSettings) DurationSetting(setting string) (val time.Duration, err error)
DurationSetting returns the requested setting parsed as a time.Duration. Returns an error if the setting is not set or cannot be parsed as a time.Duration.
func (*SessionSettings) HasSetting ¶
func (s *SessionSettings) HasSetting(setting string) bool
HasSetting returns true if a setting is set, false if not
func (*SessionSettings) Init ¶
func (s *SessionSettings) Init()
Init initializes or resets SessionSettings
func (*SessionSettings) IntSetting ¶
func (s *SessionSettings) IntSetting(setting string) (val int, err error)
IntSetting returns the requested setting parsed as an int. Returns an errror if the setting is not set or cannot be parsed as an int.
func (*SessionSettings) Set ¶
func (s *SessionSettings) Set(setting string, val string)
Set assigns a value to a setting on SessionSettings.
type Settings ¶
type Settings struct {
// contains filtered or unexported fields
}
The Settings type represents a collection of global and session settings.
func ParseSettings ¶
ParseSettings creates and initializes a Settings instance with config parsed from a Reader. Returns error if the config is has parse errors
func (*Settings) AddSession ¶
func (s *Settings) AddSession(sessionSettings *SessionSettings) (SessionID, error)
AddSession adds Session Settings to Settings instance. Returns an error if session settings with duplicate sessionID has already been added
func (*Settings) GlobalSettings ¶
func (s *Settings) GlobalSettings() *SessionSettings
GlobalSettings are default setting inherited by all session settings.
func (*Settings) SessionSettings ¶
func (s *Settings) SessionSettings() map[SessionID]*SessionSettings
SessionSettings return all session settings overlaying globalsettings.
type Tag ¶
type Tag int
Tag is a typed int representing a FIX tag
type TagValue ¶ added in v0.3.0
type TagValue struct {
// contains filtered or unexported fields
}
TagValue is a low-level FIX field abstraction
type TimestampPrecision ¶
type TimestampPrecision int
TimestampPrecision defines the precision used by FIXUTCTimestamp
const ( Millis TimestampPrecision = iota Seconds Micros Nanos )
All TimestampPrecisions supported by FIX
type Trailer ¶ added in v0.3.0
type Trailer struct{ FieldMap }
Trailer is the last section of a FIX message
type Validator ¶
type Validator interface {
Validate(*Message) MessageRejectError
}
Validator validates a FIX message
func NewValidator ¶
func NewValidator(settings ValidatorSettings, appDataDictionary, transportDataDictionary *datadictionary.DataDictionary) Validator
NewValidator creates a FIX message validator from the given data dictionaries
type ValidatorSettings ¶
ValidatorSettings describe validation behavior
Source Files ¶
- acceptor.go
- application.go
- begin_string.go
- connection.go
- custom_log.go
- dialer.go
- doc.go
- errors.go
- field.go
- field_map.go
- file_log.go
- filestore.go
- fileutil.go
- fix_boolean.go
- fix_bytes.go
- fix_decimal.go
- fix_float.go
- fix_int.go
- fix_string.go
- fix_utc_timestamp.go
- in_session.go
- initiator.go
- latent_state.go
- log.go
- logon_state.go
- logout_state.go
- message.go
- message_build.go
- message_pool.go
- message_router.go
- mongostore.go
- msg_type.go
- not_session_time.go
- null_log.go
- parser.go
- pending_timeout.go
- registry.go
- repeating_group.go
- resend_state.go
- screen_log.go
- session.go
- session_factory.go
- session_id.go
- session_rejects.go
- session_settings.go
- session_state.go
- settings.go
- sqlstore.go
- store.go
- tag.go
- tag_value.go
- tls.go
- validation.go
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
Package config declares application and session settings for QuickFIX/Go BeginString Version of FIX this session should use.
|
Package config declares application and session settings for QuickFIX/Go BeginString Version of FIX this session should use. |
Package datadictionary provides support for parsing and organizing FIX Data Dictionaries
|
Package datadictionary provides support for parsing and organizing FIX Data Dictionaries |
Package fix44 is generated from the generate-fix tool using standard FIX specs from the github.com/cryptogarageinc/quickfix-go package.
|
Package fix44 is generated from the generate-fix tool using standard FIX specs from the github.com/cryptogarageinc/quickfix-go package. |