Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 6 additions & 6 deletions _test/echo_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,23 +30,23 @@ func (e *EchoApplication) OnLogon(sessionID quickfix.SessionID) {
func (e *EchoApplication) OnLogout(sessionID quickfix.SessionID) {
e.log.Printf("OnLogout %v\n", sessionID.String())
}
func (e EchoApplication) ToAdmin(msgBuilder quickfix.Message, sessionID quickfix.SessionID) {
func (e EchoApplication) ToAdmin(msgBuilder *quickfix.Message, sessionID quickfix.SessionID) {
}

func (e EchoApplication) ToApp(msgBuilder quickfix.Message, sessionID quickfix.SessionID) (err error) {
func (e EchoApplication) ToApp(msgBuilder *quickfix.Message, sessionID quickfix.SessionID) (err error) {
return
}

func (e EchoApplication) FromAdmin(msg quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
func (e EchoApplication) FromAdmin(msg *quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
return
}

func (e *EchoApplication) FromApp(msg quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
func (e *EchoApplication) FromApp(msg *quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
e.log.Println("Got Message ", msg)
return router.Route(msg, sessionID)
}

func (e *EchoApplication) processMsg(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
func (e *EchoApplication) processMsg(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
var possResend field.PossResendField
msg.Header.Get(&possResend)

Expand Down Expand Up @@ -77,7 +77,7 @@ func (e *EchoApplication) processMsg(msg quickfix.Message, sessionID quickfix.Se
return nil
}

func copyMessage(msg quickfix.Message) quickfix.Message {
func copyMessage(msg *quickfix.Message) *quickfix.Message {
msgType := new(field.MsgTypeField)
msg.Header.Get(msgType)

Expand Down
2 changes: 1 addition & 1 deletion acceptor.go
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ func (a *Acceptor) handleConnection(netConn net.Conn) {
}

msg := NewMessage()
err = ParseMessage(&msg, msgBytes)
err = ParseMessage(msg, msgBytes)
if err != nil {
a.invalidMessage(msgBytes, err)
return
Expand Down
8 changes: 4 additions & 4 deletions application.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ type Application interface {
OnLogout(sessionID SessionID)

//Notification of admin message being sent to target.
ToAdmin(message Message, sessionID SessionID)
ToAdmin(message *Message, sessionID SessionID)

//Notification of app message being sent to target.
ToApp(message Message, sessionID SessionID) error
ToApp(message *Message, sessionID SessionID) error

//Notification of admin message being received from target.
FromAdmin(message Message, sessionID SessionID) MessageRejectError
FromAdmin(message *Message, sessionID SessionID) MessageRejectError

//Notification of app message being received from target.
FromApp(message Message, sessionID SessionID) MessageRejectError
FromApp(message *Message, sessionID SessionID) MessageRejectError
}
42 changes: 18 additions & 24 deletions cmd/generate-fix/internal/templates.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,12 +176,12 @@ import(

//Header is the {{ .Package }} Header type
type Header struct {
quickfix.Header
*quickfix.Header
}

//NewHeader returns a new, initialized Header instance
func NewHeader() (h Header) {
h.Init()
func NewHeader(header *quickfix.Header) (h Header) {
h.Header = header
h.SetBeginString("{{ beginString .FIXSpec }}")
return
}
Expand Down Expand Up @@ -211,7 +211,7 @@ import(

//Trailer is the {{ .Package }} Trailer type
type Trailer struct {
quickfix.Trailer
*quickfix.Trailer
}

{{ template "setters" .}}
Expand All @@ -225,7 +225,6 @@ type Trailer struct {
package {{ .Package }}

import(
"time"
{{- range collectExtraImports .MessageDef }}
"{{ . }}"
{{- end }}
Expand All @@ -242,38 +241,33 @@ import(
//{{ .Name }} is the {{ .FIXPackage }} {{ .Name }} type, MsgType = {{ .MsgType }}
type {{ .Name }} struct {
{{ .TransportPackage }}.Header
quickfix.Body
*quickfix.Body
{{ .TransportPackage }}.Trailer
//ReceiveTime is the time that this message was read from the socket connection
ReceiveTime time.Time
Message *quickfix.Message
}

//FromMessage creates a {{ .Name }} from a quickfix.Message instance
func FromMessage(m quickfix.Message) {{ .Name }} {
func FromMessage(m *quickfix.Message) {{ .Name }} {
return {{ .Name }}{
Header: {{ .TransportPackage }}.Header{ Header: m.Header },
Body: m.Body,
Trailer: {{ .TransportPackage }}.Trailer{ Trailer: m.Trailer },
ReceiveTime: m.ReceiveTime,
Header: {{ .TransportPackage}}.Header{&m.Header},
Body: &m.Body,
Trailer: {{ .TransportPackage}}.Trailer{&m.Trailer},
Message: m,
}
}

//ToMessage returns a quickfix.Message instance
func (m {{ .Name }}) ToMessage() quickfix.Message {
return quickfix.Message {
Header: m.Header.Header,
Body: m.Body,
Trailer: m.Trailer.Trailer,
ReceiveTime: m.ReceiveTime,
}
func (m {{ .Name }}) ToMessage() *quickfix.Message {
return m.Message
}

{{ $required_fields := requiredFields .MessageDef -}}
//New returns a {{ .Name }} initialized with the required fields for {{ .Name }}
func New({{template "field_args" $required_fields }}) (m {{ .Name }}) {
m.Header = {{ .TransportPackage }}.NewHeader()
m.Init()
m.Trailer.Init()
m.Message = quickfix.NewMessage()
m.Header = {{ .TransportPackage }}.NewHeader(&m.Message.Header)
m.Body = &m.Message.Body
m.Trailer.Trailer = &m.Message.Trailer

m.Header.Set(field.NewMsgType("{{ .MessageDef.MsgType }}"))
{{- range $required_fields }}
Expand All @@ -288,7 +282,7 @@ type RouteOut func(msg {{ .Name }}, sessionID quickfix.SessionID) quickfix.Messa

//Route returns the beginstring, message type, and MessageRoute for this Message type
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
r:=func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
r:=func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
return router(FromMessage(msg), sessionID)
}
return "{{ routerBeginString .FIXSpec }}", "{{ .MessageDef.MsgType }}", r
Expand Down
33 changes: 14 additions & 19 deletions fix40/advertisement/Advertisement.generated.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,32 @@ import (
//Advertisement is the fix40 Advertisement type, MsgType = 7
type Advertisement struct {
fix40.Header
quickfix.Body
*quickfix.Body
fix40.Trailer
//ReceiveTime is the time that this message was read from the socket connection
ReceiveTime time.Time
Message *quickfix.Message
}

//FromMessage creates a Advertisement from a quickfix.Message instance
func FromMessage(m quickfix.Message) Advertisement {
func FromMessage(m *quickfix.Message) Advertisement {
return Advertisement{
Header: fix40.Header{Header: m.Header},
Body: m.Body,
Trailer: fix40.Trailer{Trailer: m.Trailer},
ReceiveTime: m.ReceiveTime,
Header: fix40.Header{&m.Header},
Body: &m.Body,
Trailer: fix40.Trailer{&m.Trailer},
Message: m,
}
}

//ToMessage returns a quickfix.Message instance
func (m Advertisement) ToMessage() quickfix.Message {
return quickfix.Message{
Header: m.Header.Header,
Body: m.Body,
Trailer: m.Trailer.Trailer,
ReceiveTime: m.ReceiveTime,
}
func (m Advertisement) ToMessage() *quickfix.Message {
return m.Message
}

//New returns a Advertisement initialized with the required fields for Advertisement
func New(advid field.AdvIdField, advtranstype field.AdvTransTypeField, symbol field.SymbolField, advside field.AdvSideField, shares field.SharesField) (m Advertisement) {
m.Header = fix40.NewHeader()
m.Init()
m.Trailer.Init()
m.Message = quickfix.NewMessage()
m.Header = fix40.NewHeader(&m.Message.Header)
m.Body = &m.Message.Body
m.Trailer.Trailer = &m.Message.Trailer

m.Header.Set(field.NewMsgType("7"))
m.Set(advid)
Expand All @@ -61,7 +56,7 @@ type RouteOut func(msg Advertisement, sessionID quickfix.SessionID) quickfix.Mes

//Route returns the beginstring, message type, and MessageRoute for this Message type
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
r := func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
r := func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
return router(FromMessage(msg), sessionID)
}
return "FIX.4.0", "7", r
Expand Down
33 changes: 14 additions & 19 deletions fix40/allocation/Allocation.generated.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,32 @@ import (
//Allocation is the fix40 Allocation type, MsgType = J
type Allocation struct {
fix40.Header
quickfix.Body
*quickfix.Body
fix40.Trailer
//ReceiveTime is the time that this message was read from the socket connection
ReceiveTime time.Time
Message *quickfix.Message
}

//FromMessage creates a Allocation from a quickfix.Message instance
func FromMessage(m quickfix.Message) Allocation {
func FromMessage(m *quickfix.Message) Allocation {
return Allocation{
Header: fix40.Header{Header: m.Header},
Body: m.Body,
Trailer: fix40.Trailer{Trailer: m.Trailer},
ReceiveTime: m.ReceiveTime,
Header: fix40.Header{&m.Header},
Body: &m.Body,
Trailer: fix40.Trailer{&m.Trailer},
Message: m,
}
}

//ToMessage returns a quickfix.Message instance
func (m Allocation) ToMessage() quickfix.Message {
return quickfix.Message{
Header: m.Header.Header,
Body: m.Body,
Trailer: m.Trailer.Trailer,
ReceiveTime: m.ReceiveTime,
}
func (m Allocation) ToMessage() *quickfix.Message {
return m.Message
}

//New returns a Allocation initialized with the required fields for Allocation
func New(allocid field.AllocIDField, alloctranstype field.AllocTransTypeField, side field.SideField, symbol field.SymbolField, shares field.SharesField, avgpx field.AvgPxField, tradedate field.TradeDateField) (m Allocation) {
m.Header = fix40.NewHeader()
m.Init()
m.Trailer.Init()
m.Message = quickfix.NewMessage()
m.Header = fix40.NewHeader(&m.Message.Header)
m.Body = &m.Message.Body
m.Trailer.Trailer = &m.Message.Trailer

m.Header.Set(field.NewMsgType("J"))
m.Set(allocid)
Expand All @@ -63,7 +58,7 @@ type RouteOut func(msg Allocation, sessionID quickfix.SessionID) quickfix.Messag

//Route returns the beginstring, message type, and MessageRoute for this Message type
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
r := func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
r := func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
return router(FromMessage(msg), sessionID)
}
return "FIX.4.0", "J", r
Expand Down
33 changes: 14 additions & 19 deletions fix40/allocationack/AllocationACK.generated.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,37 +13,32 @@ import (
//AllocationACK is the fix40 AllocationACK type, MsgType = P
type AllocationACK struct {
fix40.Header
quickfix.Body
*quickfix.Body
fix40.Trailer
//ReceiveTime is the time that this message was read from the socket connection
ReceiveTime time.Time
Message *quickfix.Message
}

//FromMessage creates a AllocationACK from a quickfix.Message instance
func FromMessage(m quickfix.Message) AllocationACK {
func FromMessage(m *quickfix.Message) AllocationACK {
return AllocationACK{
Header: fix40.Header{Header: m.Header},
Body: m.Body,
Trailer: fix40.Trailer{Trailer: m.Trailer},
ReceiveTime: m.ReceiveTime,
Header: fix40.Header{&m.Header},
Body: &m.Body,
Trailer: fix40.Trailer{&m.Trailer},
Message: m,
}
}

//ToMessage returns a quickfix.Message instance
func (m AllocationACK) ToMessage() quickfix.Message {
return quickfix.Message{
Header: m.Header.Header,
Body: m.Body,
Trailer: m.Trailer.Trailer,
ReceiveTime: m.ReceiveTime,
}
func (m AllocationACK) ToMessage() *quickfix.Message {
return m.Message
}

//New returns a AllocationACK initialized with the required fields for AllocationACK
func New(allocid field.AllocIDField, tradedate field.TradeDateField, allocstatus field.AllocStatusField) (m AllocationACK) {
m.Header = fix40.NewHeader()
m.Init()
m.Trailer.Init()
m.Message = quickfix.NewMessage()
m.Header = fix40.NewHeader(&m.Message.Header)
m.Body = &m.Message.Body
m.Trailer.Trailer = &m.Message.Trailer

m.Header.Set(field.NewMsgType("P"))
m.Set(allocid)
Expand All @@ -58,7 +53,7 @@ type RouteOut func(msg AllocationACK, sessionID quickfix.SessionID) quickfix.Mes

//Route returns the beginstring, message type, and MessageRoute for this Message type
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
r := func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
r := func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
return router(FromMessage(msg), sessionID)
}
return "FIX.4.0", "P", r
Expand Down
Loading