public long logon(
final int heartbeatIntervalInS,
final int msgSeqNo,
final String username,
final String password,
final boolean resetSeqNumFlag,
final int sequenceIndex,
final int lastMsgSeqNumProcessed)
{
final HeaderEncoder header = logon.header();
setupHeader(header, msgSeqNo, lastMsgSeqNumProcessed);
logon
.heartBtInt(heartbeatIntervalInS)
.resetSeqNumFlag(resetSeqNumFlag)
.encryptMethod(0);
if (!nullOrEmpty(username))
{
logon.username(username);
}
if (!nullOrEmpty(password))
{
logon.password(password);
}
customisationStrategy.configureLogon(logon, sessionId);
seqNumResetRequested = logon.resetSeqNumFlag();
final long result = logon.encode(buffer, 0);
return send(result, LogonDecoder.MESSAGE_TYPE, sequenceIndex, logon, msgSeqNo);
}