Sunday, 29 July 2012

Fix8 version 0.6.0 released

I have released Fix8 version 0.6.0 today. This is a performance release and will:

1. reduce the encode/decode latency, improve throughput
2. add a metadata driven test harness

home

harness

This test client uses the FIX8::consolemenu class to provide a simple metadat driven test client. All of the messages and fields generated by the compiler are available.

The following is an example run:


% ./harness -r -l client -c hf_client.xml

?=help >
Key     Command
===     =======
?       Help
c       Create messages
d       Delete messages
e       Edit messages
l       Logout
r       Read messages from disk
s       Send messages
w       Write messages to disk
x       Exit

?=help >

--------------------------------------------------
 Select message to create
--------------------------------------------------
[0]  Heartbeat(0)
[1]  TestRequest(1)
[2]  ResendRequest(2)
[3]  Reject(3)
[4]  SequenceReset(4)
[5]  Logout(5)
[6]  IOI(6)
[7]  Advertisement(7)
[8]  ExecutionReport(8)
[9]  OrderCancelReject(9)
[a]  Logon(A)
[b]  DerivativeSecurityList(AA)
[c]  NewOrderMultileg(AB)
[d]  MultilegOrderCancelReplace(AC)
[e]  TradeCaptureReportRequest(AD)
[f]  TradeCaptureReport(AE)
[g]  OrderMassStatusRequest(AF)
[h]  QuoteRequestReject(AG)
[i]  RFQRequest(AH)
[j]  QuoteStatusReport(AI)
[k]  QuoteResponse(AJ)
[l]  Confirmation(AK)
[m]  PositionMaintenanceRequest(AL)
[n]  PositionMaintenanceReport(AM)
[o]  RequestForPositions(AN)
[p]  RequestForPositionsAck(AO)
[q]  PositionReport(AP)
[r]  TradeCaptureReportRequestAck(AQ)
[s]  TradeCaptureReportAck(AR)
[t]  AllocationReport(AS)
[u]  AllocationReportAck(AT)
[v]  ConfirmationAck(AU)
[w]  SettlementInstructionRequest(AV)
[x]  AssignmentReport(AW)
[y]  CollateralRequest(AX)
[z]  CollateralAssignment(AY)
[A]  CollateralResponse(AZ)
[B]  News(B)
[C]  CollateralReport(BA)
[D]  CollateralInquiry(BB)
[E]  NetworkCounterpartySystemStatusRequest(BC)
[F]  NetworkCounterpartySystemStatusResponse(BD)
[G]  UserRequest(BE)
[H]  UserResponse(BF)
[I]  CollateralInquiryAck(BG)
[J]  ConfirmationRequest(BH)
[K]  TradingSessionListRequest(BI)
[L]  TradingSessionList(BJ)
[M]  SecurityListUpdateReport(BK)
[N]  AdjustedPositionReport(BL)
Page 1/3 Press ENTER for next page, '.' to Quit or type an option>G

--------------------------------------------------
 UserRequest: Select field to add
--------------------------------------------------
[0]  RawDataLength(95)
[1]  RawData(96)
[2] *Username(553)
[3]  Password(554)
[4] *UserRequestID(923)
[5] *UserRequestType(924)
[6]  NewPassword(925)
[7]  EncryptedPasswordMethod(1400)
[8]  EncryptedPasswordLen(1401)
[9]  EncryptedPassword(1402)
[a]  EncryptedNewPasswordLen(1403)
[b]  EncryptedNewPassword(1404)
Page 1/1 Press ENTER for next page, '.' to Quit or type an option>2


Username: dakka

--------------------------------------------------
 UserRequest: Select field to add
--------------------------------------------------
[0]  RawDataLength(95)
[1]  RawData(96)
[2] +Username (553): dakka
[3]  Password(554)
[4] *UserRequestID(923)
[5] *UserRequestType(924)
[6]  NewPassword(925)
[7]  EncryptedPasswordMethod(1400)
[8]  EncryptedPasswordLen(1401)
[9]  EncryptedPassword(1402)
[a]  EncryptedNewPasswordLen(1403)
[b]  EncryptedNewPassword(1404)
Page 1/1 Press ENTER for next page, '.' to Quit or type an option> 4

UserRequestID: 1

--------------------------------------------------
 UserRequest: Select field to add
--------------------------------------------------
[0]  RawDataLength(95)
[1]  RawData(96)
[2] +Username (553): dakka
[3]  Password(554)
[4] +UserRequestID (923): 1
[5] *UserRequestType(924)
[6]  NewPassword(925)
[7]  EncryptedPasswordMethod(1400)
[8]  EncryptedPasswordLen(1401)
[9]  EncryptedPassword(1402)
[a]  EncryptedNewPasswordLen(1403)
[b]  EncryptedNewPassword(1404)
Page 1/1 Press ENTER for next page, '.' to Quit or type an option> 5
--------------------------------------------------
 UserRequestType: Select realm value to add
--------------------------------------------------
[0]  LOG_ON_USER (1)
[1]  LOG_OFF_USER (2)
[2]  CHANGE_PASSWORD_FOR_USER (3)
[3]  REQUEST_INDIVIDUAL_USER_STATUS (4)
Page 1/1 Press ENTER for next page, '.' to Quit or type an option> 3
--------------------------------------------------
 UserRequest: Select field to add
--------------------------------------------------
[0]  RawDataLength(95)
[1]  RawData(96)
[2] +Username (553): dakka
[3]  Password(554)
[4] +UserRequestID (923): 1
[5] +UserRequestType (924): CHANGE_PASSWORD_FOR_USER (3)
[6]  NewPassword(925)
[7]  EncryptedPasswordMethod(1400)
[8]  EncryptedPasswordLen(1401)
[9]  EncryptedPassword(1402)
[a]  EncryptedNewPasswordLen(1403)
[b]  EncryptedNewPassword(1404)
Page 1/1 Press ENTER for next page, '.' to Quit or type an option> .


UserRequest ("BE")
   Username (553): dakka
   UserRequestID (923): 1
   UserRequestType (924): CHANGE_PASSWORD_FOR_USER (3)

Add to list? (y/n):y
--------------------------------------------------
 Select message to create
--------------------------------------------------
[0]  Heartbeat(0)
[1]  TestRequest(1)
[2]  ResendRequest(2)
[3]  Reject(3)
[4]  SequenceReset(4)
[5]  Logout(5)
[6]  IOI(6)
[7]  Advertisement(7)
[8]  ExecutionReport(8)
[9]  OrderCancelReject(9)
[a]  Logon(A)
[b]  DerivativeSecurityList(AA)
[c]  NewOrderMultileg(AB)
[d]  MultilegOrderCancelReplace(AC)
[e]  TradeCaptureReportRequest(AD)
[f]  TradeCaptureReport(AE)
[g]  OrderMassStatusRequest(AF)
[h]  QuoteRequestReject(AG)
[i]  RFQRequest(AH)
[j]  QuoteStatusReport(AI)
[k]  QuoteResponse(AJ)
[l]  Confirmation(AK)
[m]  PositionMaintenanceRequest(AL)
[n]  PositionMaintenanceReport(AM)
[o]  RequestForPositions(AN)
[p]  RequestForPositionsAck(AO)
[q]  PositionReport(AP)
[r]  TradeCaptureReportRequestAck(AQ)
[s]  TradeCaptureReportAck(AR)
[t]  AllocationReport(AS)
[u]  AllocationReportAck(AT)
[v]  ConfirmationAck(AU)
[w]  SettlementInstructionRequest(AV)
[x]  AssignmentReport(AW)
[y]  CollateralRequest(AX)
[z]  CollateralAssignment(AY)
[A]  CollateralResponse(AZ)
[B]  News(B)
[C]  CollateralReport(BA)
[D]  CollateralInquiry(BB)
[E]  NetworkCounterpartySystemStatusRequest(BC)
[F]  NetworkCounterpartySystemStatusResponse(BD)
[G]  UserRequest(BE)
[H]  UserResponse(BF)
[I]  CollateralInquiryAck(BG)
[J]  ConfirmationRequest(BH)
[K]  TradingSessionListRequest(BI)
[L]  TradingSessionList(BJ)
[M]  SecurityListUpdateReport(BK)
[N]  AdjustedPositionReport(BL)
Page 1/3 Press ENTER for next page, '.' to Quit or type an option> .


?=help >
% ?

Key     Command
===     =======
?       Help
c       Create messages
d       Delete messages
e       Edit messages
l       Logout
r       Read messages from disk
s       Send messages
w       Write messages to disk
x       Exit

?=help > s

Send messages? (y/n):y
?=help > x

%

notes:
1. Mandatory fields are maked with an '*'
2. Fields that have values are marked with an '+'
3. For fields that have pre-defined domain values, a sub-menu of valid values is presented to select

No comments:

Post a Comment