msg/async/frames_v2: introduce FrameAssembler
Start separating frame assembly and disassembly code from
frame sending, receiving and handling code, so that assembly
and disassembly pieces can be unit tested and hopefully also
shared between different messengers (e.g. crimson).
This commit factors out the assembly code from Frame.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit
872b125a5b817def84ed5d70d204fec5a4fa7c1e)
Conflicts:
src/crimson/CMakeLists.txt [ crimson doesn't support msgr2
in nautilus
src/crimson/net/ProtocolV2.cc [ ditto ]
src/crimson/net/ProtocolV2.h [ ditto ]
src/msg/async/frames_v2.h [ commits
f1cf408412c8
("msg/async/frames_v2.h: fix warning"),
c70f779d12a2
("headers: Make ceph_le member private"),
9908f0e652b9
("msg: Add optimizing move") and
1a975fb3a801 ("msg/async:
fix unnecessary 4 kB allocation in secure mode.") not in
nautilus; fmt include adjusted as in rgw_lc.cc ]