UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataflowArchive.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5// The following code serializes the size of the PropertyData to serialize so that when loading,
6// we can skip over it if the function could not be loaded.
7// Serialize a temporary value for the delta in order to end up with an archive of the right size.
8// Then serialize the PropertyData in order to get its size.
9#define DATAFLOW_OPTIONAL_BLOCK_WRITE_BEGIN(){\
10 const int64 NodeDataSizePos = Ar.Tell();\
11 int64 NodeDataSize = 0;\
12 Ar << NodeDataSize;\
13 const int64 NodeBegin = Ar.Tell();
14
15
16// Only go back and serialize the number of argument bytes if there is actually an underlying buffer to seek to.
17// Come back to the temporary value we wrote and overwrite it with the PropertyData size we just calculated.
18// And finally seek back to the end.
19#define DATAFLOW_OPTIONAL_BLOCK_WRITE_END()\
20 if (NodeDataSizePos != INDEX_NONE)\
21 {\
22 const int64 NodeEnd = Ar.Tell();\
23 NodeDataSize = (NodeEnd - NodeBegin);\
24 Ar.Seek(NodeDataSizePos);\
25 Ar << NodeDataSize;\
26 Ar.Seek(NodeEnd);\
27 }\
28 }
29
30
31#define DATAFLOW_OPTIONAL_BLOCK_READ_BEGIN(COND) \
32 {\
33 int64 NodeDataSize = 0;\
34 Ar << NodeDataSize;\
35 if (COND)
36
37#define DATAFLOW_OPTIONAL_BLOCK_READ_ELSE() \
38 else{\
39 Ar.Seek(Ar.Tell() + NodeDataSize);\
40
41#define DATAFLOW_OPTIONAL_BLOCK_READ_END() }}
42