// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include #include #include namespace zen { class IoBuffer; class CbPackage; class CompositeBuffer; struct CbPackageHeader { uint32_t HeaderMagic; uint32_t AttachmentCount; uint32_t Reserved1; uint32_t Reserved2; }; static_assert(sizeof(CbPackageHeader) == 16); static constinit uint32_t kCbPkgMagic = 0xaa77aacc; struct CbAttachmentEntry { uint64_t AttachmentSize; uint32_t Reserved1; IoHash AttachmentHash; }; static_assert(sizeof(CbAttachmentEntry) == 32); std::vector FormatPackageMessage(const CbPackage& Data); CompositeBuffer FormatPackageMessageBuffer(const CbPackage& Data); CbPackage ParsePackageMessage( IoBuffer Payload, std::function CreateBuffer = [](const IoHash&, uint64_t Size) -> IoBuffer { return IoBuffer{Size}; }); } // namespace zen