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 https://quickfixgo.org
Index ¶
- Constants
 - Variables
 - func GetExpectedSenderNum(sessionID SessionID) (int, error)
 - func GetExpectedTargetNum(sessionID SessionID) (int, error)
 - func ParseMessage(msg *Message, rawMessage *bytes.Buffer) (err error)
 - func ParseMessageWithDataDictionary(msg *Message, rawMessage *bytes.Buffer, ...) (err error)
 - func ResetSession(sessionID SessionID) error
 - func Send(m Messagable) (err error)
 - func SendToTarget(m Messagable, sessionID SessionID) error
 - func SetNextSenderMsgSeqNum(sessionID SessionID, seqNum int) error
 - func SetNextTargetMsgSeqNum(sessionID SessionID, seqNum int) error
 - func UnregisterSession(sessionID SessionID) error
 - type Acceptor
 - type Application
 - type Body
 - type ConditionallyRequiredSetting
 - type ConnectionValidator
 - 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) 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) Remove(tag Tag)
 - 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
 - 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 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
 - type RejectLogon
 - type RepeatingGroup
 - type SessionID
 - type SessionSettings
 - func (s SessionSettings) BoolSetting(setting string) (bool, error)
 - func (s *SessionSettings) DurationSetting(setting string) (time.Duration, error)
 - func (s *SessionSettings) HasSetting(setting string) bool
 - func (s *SessionSettings) Init()
 - func (s *SessionSettings) IntSetting(setting string) (int, error)
 - func (s *SessionSettings) RawSetting(setting string) ([]byte, error)
 - func (s *SessionSettings) Set(setting string, val string)
 - func (s *SessionSettings) SetRaw(setting string, val []byte)
 - 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.
const (
	UserDefinedTagMin int = 5000
)
    Variables ¶
var ErrDoNotSend = errors.New("Do Not Send")
    ErrDoNotSend is a convenience error to indicate a DoNotSend in ToApp.
Functions ¶
func GetExpectedSenderNum ¶
GetExpectedSenderNum retrieves the expected sender sequence number for the session matching the session id.
func GetExpectedTargetNum ¶
GetExpectedTargetNum retrieves the next target sequence number for the session matching the session id.
func ParseMessage ¶
ParseMessage constructs a Message from a byte slice wrapping a FIX message.
func ParseMessageWithDataDictionary ¶
func ParseMessageWithDataDictionary( msg *Message, rawMessage *bytes.Buffer, transportDataDictionary *datadictionary.DataDictionary, appDataDictionary *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 ResetSession ¶
ResetSession resets session's sequence numbers.
func Send ¶
func Send(m Messagable) (err error)
Send determines the session to send Messagable using header fields BeginString, TargetCompID, SenderCompID.
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 SetNextSenderMsgSeqNum ¶
SetNextSenderMsgSeqNum sets the next outgoing message sequence number for the session matching the session id.
func SetNextTargetMsgSeqNum ¶
SetNextTargetMsgSeqNum set the next expected target message sequence number for the session matching the session id.
func UnregisterSession ¶
UnregisterSession removes a session from the set of known sessions.
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) RemoteAddr ¶
RemoteAddr gets remote IP address for a given session.
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)
func (*Acceptor) SetTLSConfig ¶
SetTLSConfig allows the creator of the Acceptor to specify a fully customizable tls.Config of their choice, which will be used in the Start() method.
Note: when the caller explicitly provides a tls.Config with this function, it takes precendent over TLS settings specified in the acceptor's settings.GlobalSettings(), meaning that the `settings.GlobalSettings()` object is not inspected or used for the creation of the tls.Config.
type Application ¶
type Application interface {
	// OnCreate notification of a session begin created.
	OnCreate(sessionID SessionID)
	// OnLogon notification of a session successfully logging on.
	OnLogon(sessionID SessionID)
	// OnLogout notification of a session logging off or disconnecting.
	OnLogout(sessionID SessionID)
	// ToAdmin notification of admin message being sent to target.
	ToAdmin(message *Message, sessionID SessionID)
	// ToApp notification of app message being sent to target.
	ToApp(message *Message, sessionID SessionID) error
	// FromAdmin notification of admin message being received from target.
	FromAdmin(message *Message, sessionID SessionID) MessageRejectError
	// FromApp notification of app message being received from target.
	FromApp(message *Message, sessionID SessionID) MessageRejectError
}
    Application interface should be implemented by FIX Applications. This is the primary interface for processing messages from a FIX Session.
type ConditionallyRequiredSetting ¶
type ConditionallyRequiredSetting struct {
	Setting string
}
    ConditionallyRequiredSetting indicates a missing setting.
func (ConditionallyRequiredSetting) Error ¶
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 FIXBoolean ¶
type FIXBoolean bool
FIXBoolean is a FIX Boolean value, implements FieldValue.
func (FIXBoolean) Bool ¶
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 ¶
type FIXBytes []byte
FIXBytes is a generic FIX field value, implements FieldValue. Enables zero copy read from a FieldMap.
type FIXDecimal ¶
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 ¶
func (d *FIXDecimal) Read(bytes []byte) (err error)
func (FIXDecimal) Write ¶
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 ¶
FieldGroup is the interface implemented by all typed Groups in a Message.
type FieldGroupReader ¶
FieldGroupReader is an interface for reading a FieldGroup.
type FieldGroupWriter ¶
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 ¶
func (m FieldMap) GetBool(tag Tag) (bool, MessageRejectError)
GetBool is a GetField wrapper for bool fields.
func (FieldMap) GetBytes ¶
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 ¶
func (m FieldMap) GetInt(tag Tag) (int, MessageRejectError)
GetInt is a GetField wrapper for int fields.
func (FieldMap) GetString ¶
func (m FieldMap) GetString(tag Tag) (string, MessageRejectError)
GetString is a GetField wrapper for string fields.
func (FieldMap) GetTime ¶
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 {
	// Read 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 {
	// Write 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
	// Read 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 ¶
func (gt GroupTemplate) Clone() GroupTemplate
Clone makes a copy of this GroupTemplate.
type IncorrectFormatForSetting ¶
IncorrectFormatForSetting indicates a setting that is incorrectly formatted.
func (IncorrectFormatForSetting) Error ¶
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.
type Log ¶
type Log interface {
	// OnIncoming log incoming fix message.
	OnIncoming([]byte)
	// OnOutgoing log outgoing fix message.
	OnOutgoing([]byte)
	// OnEvent log fix event.
	OnEvent(string)
	// OnEventf 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 {
	// Create global log.
	Create() (Log, error)
	// CreateSessionLog session specific log.
	CreateSessionLog(sessionID SessionID) (Log, error)
}
    The LogFactory interface creates global and session specific Log instances.
func NewNullLogFactory ¶
func NewNullLogFactory() LogFactory
NewNullLogFactory creates an instance of LogFactory that returns no-op loggers.
type Messagable ¶
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 currency message content into it.
func (*Message) IsMsgTypeOf ¶
IsMsgTypeOf returns true if the Header contains MsgType (tag 35) field and its value is the specified one.
func (*Message) MsgType ¶
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 ¶
func IncorrectDataFormatForValue(tag Tag) MessageRejectError
IncorrectDataFormatForValue returns an error indicating a field that cannot be parsed as the type required.
func InvalidMessageType ¶
func InvalidMessageType() MessageRejectError
InvalidMessageType returns an error to indicate an invalid message type.
func InvalidTagNumber ¶
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 RequiredTagMissing ¶
func RequiredTagMissing(tag Tag) MessageRejectError
RequiredTagMissing returns a validation error when a required field cannot be found in a message.
func TagNotDefinedForThisMessageType ¶
func TagNotDefinedForThisMessageType(tag Tag) MessageRejectError
TagNotDefinedForThisMessageType returns an error for an invalid tag appearing in a message.
func TagSpecifiedWithoutAValue ¶
func TagSpecifiedWithoutAValue(tag Tag) MessageRejectError
TagSpecifiedWithoutAValue returns a validation error for when a field has no value.
func UnsupportedMessageType ¶
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
	SetCreationTime(time.Time)
	SaveMessage(seqNum int, msg []byte) error
	SaveMessageAndIncrNextSenderMsgSeqNum(seqNum int, msg []byte) error
	GetMessages(beginSeqNum, endSeqNum int) ([][]byte, error)
	IterateMessages(beginSeqNum, endSeqNum int, cb func([]byte) error) error
	Refresh() error
	Reset() error
	Close() error
}
    The MessageStore interface provides methods to record and retrieve messages for resend purposes.
func GetMessageStore ¶
func GetMessageStore(sessionID SessionID) (MessageStore, error)
GetMessageStore returns the MessageStore interface for session matching the session id.
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 NewMemoryStoreFactory ¶
func NewMemoryStoreFactory() MessageStoreFactory
NewMemoryStoreFactory returns a MessageStoreFactory instance that created in-memory MessageStores.
type RejectLogon ¶
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 ¶
func (e RejectLogon) Error() string
func (RejectLogon) IsBusinessReject ¶
func (RejectLogon) IsBusinessReject() bool
IsBusinessReject implements MessageRejectError.
func (RejectLogon) RefTagID ¶
func (RejectLogon) RefTagID() *Tag
RefTagID implements MessageRejectError.
func (RejectLogon) RejectReason ¶
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 ¶
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 ¶
func (f RepeatingGroup) Clone() GroupItem
Clone makes a copy of this RepeatingGroup (tag, template).
func (RepeatingGroup) Get ¶
func (f RepeatingGroup) Get(i int) *Group
Get returns the ith group in this RepeatingGroup.
func (RepeatingGroup) Len ¶
func (f RepeatingGroup) Len() int
Len returns the number of Groups in this RepeatingGroup.
func (RepeatingGroup) Tag ¶
func (f RepeatingGroup) Tag() Tag
Tag returns the Tag for this repeating Group.
func (RepeatingGroup) Write ¶
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 identifier of a Session.
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 error if the setting is not set or cannot be parsed as a bool.
func (*SessionSettings) DurationSetting ¶
func (s *SessionSettings) DurationSetting(setting string) (time.Duration, 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) (int, 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) RawSetting ¶
func (s *SessionSettings) RawSetting(setting string) ([]byte, error)
RawSetting is a settings accessor that returns the raw byte slice value of the setting. Returns an error if the setting is missing.
func (*SessionSettings) Set ¶
func (s *SessionSettings) Set(setting string, val string)
Set assigns a string value to a setting on SessionSettings.
func (*SessionSettings) SetRaw ¶
func (s *SessionSettings) SetRaw(setting string, val []byte)
SetRaw 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 ¶
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 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.
      
      Source Files
      ¶
    
- acceptor.go
 - application.go
 - begin_string.go
 - connection.go
 - dialer.go
 - doc.go
 - errors.go
 - field.go
 - field_map.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
 - memory_store.go
 - message.go
 - message_router.go
 - msg_type.go
 - not_session_time.go
 - null_log.go
 - parser.go
 - pending_timeout.go
 - registry.go
 - repeating_group.go
 - resend_state.go
 - session.go
 - session_factory.go
 - session_id.go
 - session_rejects.go
 - session_settings.go
 - session_state.go
 - settings.go
 - store.go
 - tag.go
 - tag_value.go
 - tls.go
 - validation.go
 
      
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| 
       _test
        | 
      |
| 
         
          
            test-server
            
            command
          
          
         
       | 
      |
| 
       cmd
        | 
      |
| 
         
          
            generate-fix
            
            command
          
          
         
       | 
      |
| 
       Package config declares settings for configuring QuickFIX/Go. 
         | 
      Package config declares settings for configuring QuickFIX/Go. | 
| 
       Package datadictionary provides support for parsing and organizing FIX Data Dictionaries 
         | 
      Package datadictionary provides support for parsing and organizing FIX Data Dictionaries | 
| 
       log
        | 
      |
| 
       store
        | 
      |
