private void decode(final String example, final Decoder decoder) { buffer.putAscii(1, example); decoder.decode(buffer, 1, example.length()); }
<T extends Decoder> T readMessage(final T decoder) { final ByteBuffer buffer = ByteBuffer.allocateDirect(BUFFER_SIZE); final MutableAsciiBuffer asciiBuffer = new MutableAsciiBuffer(buffer); try { final int read = socket.read(buffer); DebugLogger.log(FIX_TEST, "< [" + asciiBuffer.getAscii(OFFSET, read) + "] for attempted: " + decoder.getClass()); decoder.decode(asciiBuffer, OFFSET, read); if (!decoder.validate()) { fail("Failed: " + RejectReason.decode(decoder.rejectReason()) + " for " + decoder.invalidTagId()); } } catch (final IOException ex) { LangUtil.rethrowUnchecked(ex); } return decoder; }