/** Reverses the sender/target compIDs from reply and sets them in the outgoing outgoingMsg */ public void reverseRoute(Message outgoingMsg, Message reply) throws FieldNotFound { reply.getHeader().setString(SenderCompID.FIELD, outgoingMsg.getHeader().getString(TargetCompID.FIELD)); reply.getHeader().setString(TargetCompID.FIELD, outgoingMsg.getHeader().getString(SenderCompID.FIELD)); } /**
public static char getCancelRejResponseToFor(Message inMessage) throws FieldNotFound { switch(inMessage.getHeader().getString(quickfix.field.MsgType.FIELD)) { case quickfix.field.MsgType.ORDER_CANCEL_REPLACE_REQUEST: return quickfix.field.CxlRejResponseTo.ORDER_CANCEL_REPLACE_REQUEST; case quickfix.field.MsgType.ORDER_CANCEL_REQUEST: return quickfix.field.CxlRejResponseTo.ORDER_CANCEL_REQUEST; } throw new IllegalArgumentException(); } /**
private boolean isGoodTime(Message message) throws FieldNotFound { if (!checkLatency) { return true; } final LocalDateTime sendingTime = message.getHeader().getUtcTimeStamp(SendingTime.FIELD); return Math.abs(SystemTime.currentTimeMillis() - sendingTime.toInstant(ZoneOffset.UTC).toEpochMilli()) / 1000 <= maxLatency; }
public static boolean isRequiredField(Message message, int whichField) { boolean required = false; try { String msgType; msgType = message.getHeader().getString(MsgType.FIELD); return isRequiredField(msgType, whichField); } catch (Exception e) { // Ignore } return required; }
private void doBadCompID(Message msg) throws IOException, FieldNotFound { if (!MsgType.LOGON.equals(msg.getHeader().getString(MsgType.FIELD))) { generateReject(msg, BAD_COMPID_REJ_REASON, 0); generateLogout(BAD_COMPID_TEXT); } else { logoutWithErrorMessage(BAD_COMPID_TEXT); } }
private void doBadCompID(Message msg) throws IOException, FieldNotFound { if (!MsgType.LOGON.equals(msg.getHeader().getString(MsgType.FIELD))) { generateReject(msg, BAD_COMPID_REJ_REASON, 0); generateLogout(BAD_COMPID_TEXT); } else { logoutWithErrorMessage(BAD_COMPID_TEXT); } }
private FieldMap getAppropriateMap(Integer fieldID, Message message) { FieldMap map; if (dataDictionary.isHeaderField(fieldID)) { map = message.getHeader(); } else if (dataDictionary.isTrailerField(fieldID)) { map = message.getTrailer(); } else { map = message; } return map; }
@Override public Message create(String inBeginString, String inMsgType) { Message m = mDelegate.create(inBeginString,inMsgType); m.getHeader().setField(new BeginString(inBeginString)); return m; }
private Object cloneTo(Message message) { message.initializeFrom(this); message.header.initializeFrom(getHeader()); message.trailer.initializeFrom(getTrailer()); return message; }
public void generateHeartbeat() { final Message heartbeat = messageFactory.create(sessionID.getBeginString(), MsgType.HEARTBEAT); initializeHeader(heartbeat.getHeader()); sendRaw(heartbeat, 0); }
private Object cloneTo(Message message) { message.initializeFrom(this); message.header.initializeFrom(getHeader()); message.trailer.initializeFrom(getTrailer()); return message; }
private void nextReject(Message reject) throws FieldNotFound, RejectLogon, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType, IOException, InvalidMessage { if (!verify(reject, false, validateSequenceNumbers)) { return; } if (getExpectedTargetNum() == reject.getHeader().getInt(MsgSeqNum.FIELD)) { state.incrNextTargetMsgSeqNum(); } nextQueued(); }
private void initializeResendFields(Message message) throws FieldNotFound { final Message.Header header = message.getHeader(); final LocalDateTime sendingTime = header.getUtcTimeStamp(SendingTime.FIELD); header.setUtcTimeStamp(OrigSendingTime.FIELD, sendingTime, getTimestampPrecision()); header.setBoolean(PossDupFlag.FIELD, true); insertSendingTime(header); }
private void initializeResendFields(Message message) throws FieldNotFound { final Message.Header header = message.getHeader(); final LocalDateTime sendingTime = header.getUtcTimeStamp(SendingTime.FIELD); header.setUtcTimeStamp(OrigSendingTime.FIELD, sendingTime, getTimestampPrecision()); header.setBoolean(PossDupFlag.FIELD, true); insertSendingTime(header); }
public void generateTestRequest(String id) { state.incrementTestRequestCounter(); final Message testRequest = messageFactory.create(sessionID.getBeginString(), MsgType.TEST_REQUEST); initializeHeader(testRequest.getHeader()); testRequest.setString(TestReqID.FIELD, id); sendRaw(testRequest, 0); }
private boolean doTargetTooLow(Message msg) throws FieldNotFound, IOException { if (!isPossibleDuplicate(msg)) { final int msgSeqNum = msg.getHeader().getInt(MsgSeqNum.FIELD); final String text = "MsgSeqNum too low, expecting " + getExpectedTargetNum() + " but received " + msgSeqNum; generateLogout(text); throw new SessionException(text); } return validatePossDup(msg); }
public static SessionID getSessionID(Message fixMessage) { final Header header = fixMessage.getHeader(); return new SessionID(getFieldOrDefault(header, BeginString.FIELD, null), getFieldOrDefault( header, SenderCompID.FIELD, null), getFieldOrDefault(header, SenderSubID.FIELD, null), getFieldOrDefault(header, SenderLocationID.FIELD, null), getFieldOrDefault( header, TargetCompID.FIELD, null), getFieldOrDefault(header, TargetSubID.FIELD, null), getFieldOrDefault(header, TargetLocationID.FIELD, null), null); }
public void resetSequence(int nextSeqNum) throws SessionNotFound { logInvocation("resetSequence to: " + nextSeqNum); Message sequenceReset = new Message(); sequenceReset.getHeader().setField(new MsgType(MsgType.SEQUENCE_RESET)); sequenceReset.setField(new NewSeqNo(nextSeqNum)); doSend(sequenceReset, session.getSessionID()); }
public static SessionID getReverseSessionID(Message fixMessage) { final Header header = fixMessage.getHeader(); return new SessionID(getFieldOrDefault(header, BeginString.FIELD, null), getFieldOrDefault( header, TargetCompID.FIELD, null), getFieldOrDefault(header, TargetSubID.FIELD, null), getFieldOrDefault(header, TargetLocationID.FIELD, null), getFieldOrDefault( header, SenderCompID.FIELD, null), getFieldOrDefault(header, SenderSubID.FIELD, null), getFieldOrDefault(header, SenderLocationID.FIELD, null), null); }
public void resetSequence(int nextSeqNum) throws SessionNotFound { logInvocation("resetSequence to: " + nextSeqNum); Message sequenceReset = new Message(); sequenceReset.getHeader().setField(new MsgType(MsgType.SEQUENCE_RESET)); sequenceReset.setField(new NewSeqNo(nextSeqNum)); doSend(sequenceReset, session.getSessionID()); }