UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BuildPatchServices::FBlockStructure Class Reference

#include <BlockStructure.h>

Public Member Functions

 FBlockStructure ()
 
 FBlockStructure (uint64 Offset, uint64 Size)
 
 FBlockStructure (const FBlockStructure &)
 
 FBlockStructure (FBlockStructure &&)
 
 ~FBlockStructure ()
 
FBlockStructureoperator= (const FBlockStructure &)
 
FBlockStructureoperator= (FBlockStructure &&)
 
const FBlockEntryGetHead () const
 
const FBlockEntryGetTail () const
 
void Empty ()
 
void Add (uint64 Offset, uint64 Size, ESearchDir::Type SearchDir=ESearchDir::FromStart)
 
void Add (const FBlockRange &BlockRange, ESearchDir::Type SearchDir=ESearchDir::FromStart)
 
void Add (const FBlockStructure &OtherStructure, ESearchDir::Type SearchDir=ESearchDir::FromStart)
 
void Remove (uint64 Offset, uint64 Size, ESearchDir::Type SearchDir=ESearchDir::FromStart)
 
void Remove (const FBlockRange &BlockRange, ESearchDir::Type SearchDir=ESearchDir::FromStart)
 
void Remove (const FBlockStructure &OtherStructure, ESearchDir::Type SearchDir=ESearchDir::FromStart)
 
uint64 SelectSerialBytes (uint64 FirstByte, uint64 Count, FBlockStructure &OutputStructure) const
 
FBlockStructure Intersect (const FBlockStructure &OtherStructure) const
 
FString ToString (uint64 BlockCountLimit=20) const
 

Constructor & Destructor Documentation

◆ FBlockStructure() [1/4]

BuildPatchServices::FBlockStructure::FBlockStructure ( )

◆ FBlockStructure() [2/4]

BuildPatchServices::FBlockStructure::FBlockStructure ( uint64  Offset,
uint64  Size 
)

◆ FBlockStructure() [3/4]

BuildPatchServices::FBlockStructure::FBlockStructure ( const FBlockStructure CopyFrom)

◆ FBlockStructure() [4/4]

BuildPatchServices::FBlockStructure::FBlockStructure ( FBlockStructure &&  MoveFrom)

◆ ~FBlockStructure()

BuildPatchServices::FBlockStructure::~FBlockStructure ( )

Member Function Documentation

◆ Add() [1/3]

void BuildPatchServices::FBlockStructure::Add ( const FBlockRange BlockRange,
ESearchDir::Type  SearchDir = ESearchDir::FromStart 
)

Add a block to this structure. Any overlap will be merged, growing existing blocks where necessary.

Parameters
BlockRangeThe range of the block.
SearchDirThe direction in which to search, default FromStart. If you know which is faster then specify this explicitly.

◆ Add() [2/3]

void BuildPatchServices::FBlockStructure::Add ( const FBlockStructure OtherStructure,
ESearchDir::Type  SearchDir = ESearchDir::FromStart 
)

Add another structure to this structure. Any overlap will be merged, growing existing blocks where necessary.

Parameters
OtherStructureThe other structure.
SearchDirThe direction in which to search, default FromStart. If you know which is faster then specify this explicitly.

◆ Add() [3/3]

void BuildPatchServices::FBlockStructure::Add ( uint64  Offset,
uint64  Size,
ESearchDir::Type  SearchDir = ESearchDir::FromStart 
)

Add a block to this structure. Any overlap will be merged, growing existing blocks where necessary.

Parameters
OffsetThe offset of the block.
SizeThe size of the block.
SearchDirThe direction in which to search, default FromStart. If you know which is faster then specify this explicitly.

◆ Empty()

void BuildPatchServices::FBlockStructure::Empty ( )

Empty the structure of all blocks.

◆ GetHead()

const FBlockEntry * BuildPatchServices::FBlockStructure::GetHead ( ) const

◆ GetTail()

const FBlockEntry * BuildPatchServices::FBlockStructure::GetTail ( ) const

◆ Intersect()

FBlockStructure BuildPatchServices::FBlockStructure::Intersect ( const FBlockStructure OtherStructure) const

Get the intersection of this block structure and another. e.g for the structures [Offset, Size] MyStructure: [ 0,10]-[20,10]-[40,10] and OtherStructure: [25,10]-[45,10]-[50,10] Intersection = MyStructure.Intersect(OtherStructure); would result in Intersection representing [25, 5]-[45, 5]

Parameters
OtherStructureThe structure to intersect with.
Returns
structure of blocks representing the overlap between this and other.

◆ operator=() [1/2]

FBlockStructure & BuildPatchServices::FBlockStructure::operator= ( const FBlockStructure CopyFrom)

◆ operator=() [2/2]

FBlockStructure & BuildPatchServices::FBlockStructure::operator= ( FBlockStructure &&  MoveFrom)

◆ Remove() [1/3]

void BuildPatchServices::FBlockStructure::Remove ( const FBlockRange BlockRange,
ESearchDir::Type  SearchDir = ESearchDir::FromStart 
)

Remove a block from this structure. Any overlap will shrink existing blocks, or remove where necessary.

Parameters
BlockRangeThe range of the block.
SearchDirThe direction in which to search, default FromStart. If you know which is faster then specify this explicitly.

◆ Remove() [2/3]

void BuildPatchServices::FBlockStructure::Remove ( const FBlockStructure OtherStructure,
ESearchDir::Type  SearchDir = ESearchDir::FromStart 
)

Remove another structure from this structure. Any overlap will shrink existing blocks, or remove where necessary.

Parameters
OtherStructureThe other structure.
SearchDirThe direction in which to search, default FromStart. If you know which is faster then specify this explicitly.

◆ Remove() [3/3]

void BuildPatchServices::FBlockStructure::Remove ( uint64  Offset,
uint64  Size,
ESearchDir::Type  SearchDir = ESearchDir::FromStart 
)

Remove a block from this structure. Any overlap will shrink existing blocks, or remove where necessary.

Parameters
OffsetThe offset of the block.
SizeThe size of the block.
SearchDirThe direction in which to search, default FromStart. If you know which is faster then specify this explicitly.

◆ SelectSerialBytes()

uint64 BuildPatchServices::FBlockStructure::SelectSerialBytes ( uint64  FirstByte,
uint64  Count,
FBlockStructure OutputStructure 
) const

Starting from the nth byte in the structure, not including gaps, select a number of bytes into the provided structure. e.g for the structure [Offset, Size] MyStructure: [ 0,10]-[20,10]-[40,10] MyStructure.SelectSerialBytes(15, 10, SerialStruct); would result in SerialStruct representing [25, 5]-[40, 5]

Parameters
FirstByteThe first byte to select, zero indexed.
CountThe number of bytes to provide.
OutputStructureThe structure receiving the blocks.
Returns
the number of bytes selected.

◆ ToString()

FString BuildPatchServices::FBlockStructure::ToString ( uint64  BlockCountLimit = 20) const

Get a string representation of this block structure, with ability to limit the number of blocks to stringify. The string is formatted "[Offset,Size]-[Offset,Size].. %d more." e.g. "[0,10]-[20,10]-[40,10]." "[0,10]-[20,10]-[40,10].. 300 more."

Parameters
BlockCountLimitThe maximum number of blocks to include in the string.
Returns
a string representation of this block structure.

The documentation for this class was generated from the following files: