Skip to content

Commit 3e6c2a2

Browse files
authored
Merge pull request #272 from cbusbey/msg_pointer
Msg pointer
2 parents 17393f8 + bc01835 commit 3e6c2a2

File tree

608 files changed

+8225
-11435
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

608 files changed

+8225
-11435
lines changed

_test/echo_server.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,23 @@ func (e *EchoApplication) OnLogon(sessionID quickfix.SessionID) {
3030
func (e *EchoApplication) OnLogout(sessionID quickfix.SessionID) {
3131
e.log.Printf("OnLogout %v\n", sessionID.String())
3232
}
33-
func (e EchoApplication) ToAdmin(msgBuilder quickfix.Message, sessionID quickfix.SessionID) {
33+
func (e EchoApplication) ToAdmin(msgBuilder *quickfix.Message, sessionID quickfix.SessionID) {
3434
}
3535

36-
func (e EchoApplication) ToApp(msgBuilder quickfix.Message, sessionID quickfix.SessionID) (err error) {
36+
func (e EchoApplication) ToApp(msgBuilder *quickfix.Message, sessionID quickfix.SessionID) (err error) {
3737
return
3838
}
3939

40-
func (e EchoApplication) FromAdmin(msg quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
40+
func (e EchoApplication) FromAdmin(msg *quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
4141
return
4242
}
4343

44-
func (e *EchoApplication) FromApp(msg quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
44+
func (e *EchoApplication) FromApp(msg *quickfix.Message, sessionID quickfix.SessionID) (err quickfix.MessageRejectError) {
4545
e.log.Println("Got Message ", msg)
4646
return router.Route(msg, sessionID)
4747
}
4848

49-
func (e *EchoApplication) processMsg(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
49+
func (e *EchoApplication) processMsg(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
5050
var possResend field.PossResendField
5151
msg.Header.Get(&possResend)
5252

@@ -77,7 +77,7 @@ func (e *EchoApplication) processMsg(msg quickfix.Message, sessionID quickfix.Se
7777
return nil
7878
}
7979

80-
func copyMessage(msg quickfix.Message) quickfix.Message {
80+
func copyMessage(msg *quickfix.Message) *quickfix.Message {
8181
msgType := new(field.MsgTypeField)
8282
msg.Header.Get(msgType)
8383

acceptor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ func (a *Acceptor) handleConnection(netConn net.Conn) {
160160
}
161161

162162
msg := NewMessage()
163-
err = ParseMessage(&msg, msgBytes)
163+
err = ParseMessage(msg, msgBytes)
164164
if err != nil {
165165
a.invalidMessage(msgBytes, err)
166166
return

application.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ type Application interface {
1313
OnLogout(sessionID SessionID)
1414

1515
//Notification of admin message being sent to target.
16-
ToAdmin(message Message, sessionID SessionID)
16+
ToAdmin(message *Message, sessionID SessionID)
1717

1818
//Notification of app message being sent to target.
19-
ToApp(message Message, sessionID SessionID) error
19+
ToApp(message *Message, sessionID SessionID) error
2020

2121
//Notification of admin message being received from target.
22-
FromAdmin(message Message, sessionID SessionID) MessageRejectError
22+
FromAdmin(message *Message, sessionID SessionID) MessageRejectError
2323

2424
//Notification of app message being received from target.
25-
FromApp(message Message, sessionID SessionID) MessageRejectError
25+
FromApp(message *Message, sessionID SessionID) MessageRejectError
2626
}

cmd/generate-fix/internal/templates.go

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,12 @@ import(
176176
177177
//Header is the {{ .Package }} Header type
178178
type Header struct {
179-
quickfix.Header
179+
*quickfix.Header
180180
}
181181
182182
//NewHeader returns a new, initialized Header instance
183-
func NewHeader() (h Header) {
184-
h.Init()
183+
func NewHeader(header *quickfix.Header) (h Header) {
184+
h.Header = header
185185
h.SetBeginString("{{ beginString .FIXSpec }}")
186186
return
187187
}
@@ -211,7 +211,7 @@ import(
211211
212212
//Trailer is the {{ .Package }} Trailer type
213213
type Trailer struct {
214-
quickfix.Trailer
214+
*quickfix.Trailer
215215
}
216216
217217
{{ template "setters" .}}
@@ -225,7 +225,6 @@ type Trailer struct {
225225
package {{ .Package }}
226226
227227
import(
228-
"time"
229228
{{- range collectExtraImports .MessageDef }}
230229
"{{ . }}"
231230
{{- end }}
@@ -242,38 +241,33 @@ import(
242241
//{{ .Name }} is the {{ .FIXPackage }} {{ .Name }} type, MsgType = {{ .MsgType }}
243242
type {{ .Name }} struct {
244243
{{ .TransportPackage }}.Header
245-
quickfix.Body
244+
*quickfix.Body
246245
{{ .TransportPackage }}.Trailer
247-
//ReceiveTime is the time that this message was read from the socket connection
248-
ReceiveTime time.Time
246+
Message *quickfix.Message
249247
}
250248
251249
//FromMessage creates a {{ .Name }} from a quickfix.Message instance
252-
func FromMessage(m quickfix.Message) {{ .Name }} {
250+
func FromMessage(m *quickfix.Message) {{ .Name }} {
253251
return {{ .Name }}{
254-
Header: {{ .TransportPackage }}.Header{ Header: m.Header },
255-
Body: m.Body,
256-
Trailer: {{ .TransportPackage }}.Trailer{ Trailer: m.Trailer },
257-
ReceiveTime: m.ReceiveTime,
252+
Header: {{ .TransportPackage}}.Header{&m.Header},
253+
Body: &m.Body,
254+
Trailer: {{ .TransportPackage}}.Trailer{&m.Trailer},
255+
Message: m,
258256
}
259257
}
260258
261259
//ToMessage returns a quickfix.Message instance
262-
func (m {{ .Name }}) ToMessage() quickfix.Message {
263-
return quickfix.Message {
264-
Header: m.Header.Header,
265-
Body: m.Body,
266-
Trailer: m.Trailer.Trailer,
267-
ReceiveTime: m.ReceiveTime,
268-
}
260+
func (m {{ .Name }}) ToMessage() *quickfix.Message {
261+
return m.Message
269262
}
270263
271264
{{ $required_fields := requiredFields .MessageDef -}}
272265
//New returns a {{ .Name }} initialized with the required fields for {{ .Name }}
273266
func New({{template "field_args" $required_fields }}) (m {{ .Name }}) {
274-
m.Header = {{ .TransportPackage }}.NewHeader()
275-
m.Init()
276-
m.Trailer.Init()
267+
m.Message = quickfix.NewMessage()
268+
m.Header = {{ .TransportPackage }}.NewHeader(&m.Message.Header)
269+
m.Body = &m.Message.Body
270+
m.Trailer.Trailer = &m.Message.Trailer
277271
278272
m.Header.Set(field.NewMsgType("{{ .MessageDef.MsgType }}"))
279273
{{- range $required_fields }}
@@ -288,7 +282,7 @@ type RouteOut func(msg {{ .Name }}, sessionID quickfix.SessionID) quickfix.Messa
288282
289283
//Route returns the beginstring, message type, and MessageRoute for this Message type
290284
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
291-
r:=func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
285+
r:=func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
292286
return router(FromMessage(msg), sessionID)
293287
}
294288
return "{{ routerBeginString .FIXSpec }}", "{{ .MessageDef.MsgType }}", r

fix40/advertisement/Advertisement.generated.go

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,37 +14,32 @@ import (
1414
//Advertisement is the fix40 Advertisement type, MsgType = 7
1515
type Advertisement struct {
1616
fix40.Header
17-
quickfix.Body
17+
*quickfix.Body
1818
fix40.Trailer
19-
//ReceiveTime is the time that this message was read from the socket connection
20-
ReceiveTime time.Time
19+
Message *quickfix.Message
2120
}
2221

2322
//FromMessage creates a Advertisement from a quickfix.Message instance
24-
func FromMessage(m quickfix.Message) Advertisement {
23+
func FromMessage(m *quickfix.Message) Advertisement {
2524
return Advertisement{
26-
Header: fix40.Header{Header: m.Header},
27-
Body: m.Body,
28-
Trailer: fix40.Trailer{Trailer: m.Trailer},
29-
ReceiveTime: m.ReceiveTime,
25+
Header: fix40.Header{&m.Header},
26+
Body: &m.Body,
27+
Trailer: fix40.Trailer{&m.Trailer},
28+
Message: m,
3029
}
3130
}
3231

3332
//ToMessage returns a quickfix.Message instance
34-
func (m Advertisement) ToMessage() quickfix.Message {
35-
return quickfix.Message{
36-
Header: m.Header.Header,
37-
Body: m.Body,
38-
Trailer: m.Trailer.Trailer,
39-
ReceiveTime: m.ReceiveTime,
40-
}
33+
func (m Advertisement) ToMessage() *quickfix.Message {
34+
return m.Message
4135
}
4236

4337
//New returns a Advertisement initialized with the required fields for Advertisement
4438
func New(advid field.AdvIdField, advtranstype field.AdvTransTypeField, symbol field.SymbolField, advside field.AdvSideField, shares field.SharesField) (m Advertisement) {
45-
m.Header = fix40.NewHeader()
46-
m.Init()
47-
m.Trailer.Init()
39+
m.Message = quickfix.NewMessage()
40+
m.Header = fix40.NewHeader(&m.Message.Header)
41+
m.Body = &m.Message.Body
42+
m.Trailer.Trailer = &m.Message.Trailer
4843

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

6257
//Route returns the beginstring, message type, and MessageRoute for this Message type
6358
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
64-
r := func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
59+
r := func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
6560
return router(FromMessage(msg), sessionID)
6661
}
6762
return "FIX.4.0", "7", r

fix40/allocation/Allocation.generated.go

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,37 +14,32 @@ import (
1414
//Allocation is the fix40 Allocation type, MsgType = J
1515
type Allocation struct {
1616
fix40.Header
17-
quickfix.Body
17+
*quickfix.Body
1818
fix40.Trailer
19-
//ReceiveTime is the time that this message was read from the socket connection
20-
ReceiveTime time.Time
19+
Message *quickfix.Message
2120
}
2221

2322
//FromMessage creates a Allocation from a quickfix.Message instance
24-
func FromMessage(m quickfix.Message) Allocation {
23+
func FromMessage(m *quickfix.Message) Allocation {
2524
return Allocation{
26-
Header: fix40.Header{Header: m.Header},
27-
Body: m.Body,
28-
Trailer: fix40.Trailer{Trailer: m.Trailer},
29-
ReceiveTime: m.ReceiveTime,
25+
Header: fix40.Header{&m.Header},
26+
Body: &m.Body,
27+
Trailer: fix40.Trailer{&m.Trailer},
28+
Message: m,
3029
}
3130
}
3231

3332
//ToMessage returns a quickfix.Message instance
34-
func (m Allocation) ToMessage() quickfix.Message {
35-
return quickfix.Message{
36-
Header: m.Header.Header,
37-
Body: m.Body,
38-
Trailer: m.Trailer.Trailer,
39-
ReceiveTime: m.ReceiveTime,
40-
}
33+
func (m Allocation) ToMessage() *quickfix.Message {
34+
return m.Message
4135
}
4236

4337
//New returns a Allocation initialized with the required fields for Allocation
4438
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) {
45-
m.Header = fix40.NewHeader()
46-
m.Init()
47-
m.Trailer.Init()
39+
m.Message = quickfix.NewMessage()
40+
m.Header = fix40.NewHeader(&m.Message.Header)
41+
m.Body = &m.Message.Body
42+
m.Trailer.Trailer = &m.Message.Trailer
4843

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

6459
//Route returns the beginstring, message type, and MessageRoute for this Message type
6560
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
66-
r := func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
61+
r := func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
6762
return router(FromMessage(msg), sessionID)
6863
}
6964
return "FIX.4.0", "J", r

fix40/allocationack/AllocationACK.generated.go

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,32 @@ import (
1313
//AllocationACK is the fix40 AllocationACK type, MsgType = P
1414
type AllocationACK struct {
1515
fix40.Header
16-
quickfix.Body
16+
*quickfix.Body
1717
fix40.Trailer
18-
//ReceiveTime is the time that this message was read from the socket connection
19-
ReceiveTime time.Time
18+
Message *quickfix.Message
2019
}
2120

2221
//FromMessage creates a AllocationACK from a quickfix.Message instance
23-
func FromMessage(m quickfix.Message) AllocationACK {
22+
func FromMessage(m *quickfix.Message) AllocationACK {
2423
return AllocationACK{
25-
Header: fix40.Header{Header: m.Header},
26-
Body: m.Body,
27-
Trailer: fix40.Trailer{Trailer: m.Trailer},
28-
ReceiveTime: m.ReceiveTime,
24+
Header: fix40.Header{&m.Header},
25+
Body: &m.Body,
26+
Trailer: fix40.Trailer{&m.Trailer},
27+
Message: m,
2928
}
3029
}
3130

3231
//ToMessage returns a quickfix.Message instance
33-
func (m AllocationACK) ToMessage() quickfix.Message {
34-
return quickfix.Message{
35-
Header: m.Header.Header,
36-
Body: m.Body,
37-
Trailer: m.Trailer.Trailer,
38-
ReceiveTime: m.ReceiveTime,
39-
}
32+
func (m AllocationACK) ToMessage() *quickfix.Message {
33+
return m.Message
4034
}
4135

4236
//New returns a AllocationACK initialized with the required fields for AllocationACK
4337
func New(allocid field.AllocIDField, tradedate field.TradeDateField, allocstatus field.AllocStatusField) (m AllocationACK) {
44-
m.Header = fix40.NewHeader()
45-
m.Init()
46-
m.Trailer.Init()
38+
m.Message = quickfix.NewMessage()
39+
m.Header = fix40.NewHeader(&m.Message.Header)
40+
m.Body = &m.Message.Body
41+
m.Trailer.Trailer = &m.Message.Trailer
4742

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

5954
//Route returns the beginstring, message type, and MessageRoute for this Message type
6055
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
61-
r := func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
56+
r := func(msg *quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
6257
return router(FromMessage(msg), sessionID)
6358
}
6459
return "FIX.4.0", "P", r

0 commit comments

Comments
 (0)