return buf;
}
private void method(Method method, SegmentType type)
{
BBEncoder enc = encoder.get();
enc.init();
enc.writeUint16(method.getEncodedType());
if (type == SegmentType.COMMAND)
{
if (method.isSync())
{
enc.writeUint16(0x0101);
}
else
{
enc.writeUint16(0x0100);
}
}
method.write(enc);
ByteBuffer methodSeg = enc.segment();
byte flags = FIRST_SEG;
boolean payload = method.hasPayload();
if (!payload)
{
flags |= LAST_SEG;
}
ByteBuffer headerSeg = null;
if (payload)
{
final Header hdr = method.getHeader();
if (hdr != null)
{
final Struct[] structs = hdr.getStructs();
for (Struct st : structs)
{
enc.writeStruct32(st);
}
}
headerSeg = enc.segment();
}
synchronized (sendlock)
{
fragment(flags, type, method, methodSeg);