forked from quickfixgo/quickfix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
UserResponse.go
127 lines (105 loc) · 3.52 KB
/
UserResponse.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package userresponse
import (
"time"
"github.com/quickfixgo/quickfix"
"github.com/quickfixgo/quickfix/field"
"github.com/quickfixgo/quickfix/fixt11"
"github.com/quickfixgo/quickfix/tag"
)
//UserResponse is the fix50sp2 UserResponse type, MsgType = BF
type UserResponse struct {
fixt11.Header
quickfix.Body
fixt11.Trailer
//ReceiveTime is the time that this message was read from the socket connection
ReceiveTime time.Time
}
//FromMessage creates a UserResponse from a quickfix.Message instance
func FromMessage(m quickfix.Message) UserResponse {
return UserResponse{
Header: fixt11.Header{Header: m.Header},
Body: m.Body,
Trailer: fixt11.Trailer{Trailer: m.Trailer},
ReceiveTime: m.ReceiveTime,
}
}
//ToMessage returns a quickfix.Message instance
func (m UserResponse) ToMessage() quickfix.Message {
return quickfix.Message{
Header: m.Header.Header,
Body: m.Body,
Trailer: m.Trailer.Trailer,
ReceiveTime: m.ReceiveTime,
}
}
//New returns a UserResponse initialized with the required fields for UserResponse
func New(userrequestid field.UserRequestIDField, username field.UsernameField) (m UserResponse) {
m.Header = fixt11.NewHeader()
m.Init()
m.Trailer.Init()
m.Header.Set(field.NewMsgType("BF"))
m.Set(userrequestid)
m.Set(username)
return
}
//A RouteOut is the callback type that should be implemented for routing Message
type RouteOut func(msg UserResponse, sessionID quickfix.SessionID) quickfix.MessageRejectError
//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 {
return router(FromMessage(msg), sessionID)
}
return "9", "BF", r
}
//SetUsername sets Username, Tag 553
func (m UserResponse) SetUsername(v string) {
m.Set(field.NewUsername(v))
}
//SetUserRequestID sets UserRequestID, Tag 923
func (m UserResponse) SetUserRequestID(v string) {
m.Set(field.NewUserRequestID(v))
}
//SetUserStatus sets UserStatus, Tag 926
func (m UserResponse) SetUserStatus(v int) {
m.Set(field.NewUserStatus(v))
}
//SetUserStatusText sets UserStatusText, Tag 927
func (m UserResponse) SetUserStatusText(v string) {
m.Set(field.NewUserStatusText(v))
}
//GetUsername gets Username, Tag 553
func (m UserResponse) GetUsername() (f field.UsernameField, err quickfix.MessageRejectError) {
err = m.Get(&f)
return
}
//GetUserRequestID gets UserRequestID, Tag 923
func (m UserResponse) GetUserRequestID() (f field.UserRequestIDField, err quickfix.MessageRejectError) {
err = m.Get(&f)
return
}
//GetUserStatus gets UserStatus, Tag 926
func (m UserResponse) GetUserStatus() (f field.UserStatusField, err quickfix.MessageRejectError) {
err = m.Get(&f)
return
}
//GetUserStatusText gets UserStatusText, Tag 927
func (m UserResponse) GetUserStatusText() (f field.UserStatusTextField, err quickfix.MessageRejectError) {
err = m.Get(&f)
return
}
//HasUsername returns true if Username is present, Tag 553
func (m UserResponse) HasUsername() bool {
return m.Has(tag.Username)
}
//HasUserRequestID returns true if UserRequestID is present, Tag 923
func (m UserResponse) HasUserRequestID() bool {
return m.Has(tag.UserRequestID)
}
//HasUserStatus returns true if UserStatus is present, Tag 926
func (m UserResponse) HasUserStatus() bool {
return m.Has(tag.UserStatus)
}
//HasUserStatusText returns true if UserStatusText is present, Tag 927
func (m UserResponse) HasUserStatusText() bool {
return m.Has(tag.UserStatusText)
}