private void initiateConnection() throws IOException { socket = SocketChannel.open(new InetSocketAddress("localhost", port)); final UtcTimestampEncoder timestamp = new UtcTimestampEncoder(); timestamp.encode(System.currentTimeMillis()); logon .heartBtInt(10) .encryptMethod(0) .header() .sendingTime(timestamp.buffer()) .msgSeqNum(1) .senderCompID(INITIATOR_ID) .targetCompID(ACCEPTOR_ID); final long result = logon.encode(buffer, 0); final int offset = Encoder.offset(result); final int length = Encoder.length(result); byteBuffer.position(offset); byteBuffer.limit(offset + length); assertEquals(length, socket.write(byteBuffer)); }
private long logonWithSenderAndTarget(final String senderCompID, final String targetCompID) { logonEncoder.header() .sendingTime(new byte[] {0}) .senderCompID(senderCompID) .targetCompID(targetCompID); return logonEncoder.encryptMethod(0).heartBtInt(0).encode(asciiBuffer, 0); } }
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); // may have been previously reset if (!nullOrEmpty(username)) { logon.username(username); } if (!nullOrEmpty(password)) { logon.password(password); } customisationStrategy.configureLogon(logon, sessionId); seqNumResetRequested = logon.resetSeqNumFlag(); // get customized or default final long result = logon.encode(buffer, 0); return send(result, LogonDecoder.MESSAGE_TYPE, sequenceIndex, logon, msgSeqNo); }