32 int MPSend(TSocket *s,
unsigned code)
34 TBufferFile wBuf(TBuffer::kWrite);
37 return s->SendRaw(wBuf.Buffer(), wBuf.Length());
54 MPCodeBufPair MPRecv(TSocket *s)
56 char *rawbuf =
new char[
sizeof(UInt_t)];
58 unsigned nBytes = s->RecvRaw(rawbuf,
sizeof(UInt_t));
60 return std::make_pair(MPCode::kRecvError,
nullptr);
63 TBufferFile bufReader(TBuffer::kRead,
sizeof(UInt_t), rawbuf,
false);
65 bufReader.ReadUInt(code);
71 s->RecvRaw(rawbuf, 8);
72 bufReader.SetBuffer(rawbuf, 8,
false);
74 bufReader.ReadULong(classBufSize);
78 std::unique_ptr<TBufferFile> objBuf;
79 if (classBufSize != 0) {
80 char *classBuf =
new char[classBufSize];
81 s->RecvRaw(classBuf, classBufSize);
82 objBuf.reset(
new TBufferFile(TBuffer::kRead, classBufSize, classBuf,
true));
85 return std::make_pair(code, std::move(objBuf));