| 329 | } |
| 330 | |
| 331 | @Override |
| 332 | public void decode(@NotNull IByteBuffer bb) { |
| 333 | var header = bb.ReadUInt(); |
| 334 | var familyClass = header & FamilyClass.FamilyClassMask; |
| 335 | if (!FamilyClass.isRpc(familyClass)) |
| 336 | throw new IllegalStateException("invalid header(" + header + ") for decoding rpc: " + getClass().getName()); |
| 337 | isRequest = familyClass == FamilyClass.Request; |
| 338 | resultCode = (header & FamilyClass.BitResultCode) != 0 ? bb.ReadLong() : 0; |
| 339 | sessionId = bb.ReadLong(); |
| 340 | if (isRequest) |
| 341 | Argument.decode(bb); |
| 342 | else |
| 343 | Result.decode(bb); |
| 344 | } |
| 345 | |
| 346 | @Override |
| 347 | public int preAllocSize() { |