public void createBB() { MemoryStream ms = new MemoryStream(); BigEndianBinaryWriter writer = new BigEndianBinaryWriter(ms); BinaryOutputArchive boa = BinaryOutputArchive.getArchive(writer); boa.writeInt(-1, "len"); // We'll fill this in later if (requestHeader != null) { ((Record)requestHeader).serialize(boa, "header"); } if (request is ConnectRequest) { request.serialize(boa, "connect"); // append "am-I-allowed-to-be-readonly" flag boa.writeBool(readOnly, "readOnly"); } else if (request != null) { request.serialize(boa, "request"); } ms.Position = 0; bb = new ByteBuffer(ms); boa.writeInt(bb.limit() - 4, "len"); ms.Position = 0; }