16 template <
typename ElementType>
19 for (
const ElementType&
Elem : CopyFrom)
25 template <
typename ListType,
typename NodeType,
typename ElementType>
28 List.InsertNode(NewNode, Node);
31 template <
typename ListType,
typename NodeType,
typename ElementType>
34 NodeType* NextNode = Node->GetNextNode();
37 List.InsertNode(NewNode, NextNode);
41 List.AddTail(NewNode);
116 template<
typename InitType>
146 if (!CurrFile || !CurrChunk)
154 CurrFile = StartFile;
155 CurrChunk = CurrFile->GetValue().ChunkParts.GetHead();
160 CurrChunk = FindFirst(&CurrFile->GetValue().ChunkParts, CurrChunk,
BlockRange);
164 while (CurrFile && CurrChunk)
166 if (CurrFile->GetValue().BuildRange.Overlaps(
BlockRange))
172 Handler(OverlapRange, CurrFile, CurrChunk);
174 CurrChunk = NextChunk;
175 while (!CurrChunk && CurrFile)
177 CurrFile = CurrFile->GetNextNode();
180 CurrChunk = CurrFile->GetValue().ChunkParts.GetHead();
200 return FileLinkedList.
GetHead();
222 CurrFile = FileLinkedList.
GetHead();
223 CurrChunk = CurrFile->GetValue().ChunkParts.GetHead();
226 template<
typename ListType,
typename ListNodeType>
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition BlockStructure.h:37
const FBlockEntry * GetHead() const
Definition BlockStructure.cpp:181
Definition ChunkSearch.h:70
void ForEachOverlap(const FBlockStructure &BlockStructure, const TFunction< void(const FBlockRange &, FFileDListNode *, FChunkDListNode *)> &Handler)
Definition ChunkSearch.h:134
FFileDList::TDoubleLinkedListNode FFileDListNode
Definition ChunkSearch.h:114
FChunkDList::TDoubleLinkedListNode FChunkDListNode
Definition ChunkSearch.h:91
FChunkSearcher(const InitType &InitClass)
Definition ChunkSearch.h:117
FFileDListNode * GetHead()
Definition ChunkSearch.h:198
void ForEachOverlap(const FBlockRange &BlockRange, const TFunction< void(const FBlockRange &, FFileDListNode *, FChunkDListNode *)> &Handler)
Definition ChunkSearch.h:144
FFileManifestList BuildNewFileManifestList()
Definition ChunkSearch.h:203
TDoubleLinkedList< FFileNode > FFileDList
Definition ChunkSearch.h:113
TDoubleLinkedList< FChunkNode > FChunkDList
Definition ChunkSearch.h:90
Definition BuildPatchManifest.h:64
virtual const BuildPatchServices::FFileManifest * GetFileManifest(const FString &Filename) const
Definition BuildPatchManifest.cpp:1035
virtual void GetFileList(TArray< FString > &Filenames) const
Definition BuildPatchManifest.cpp:953
TDoubleLinkedListNode * GetNextNode()
Definition List.h:462
const ElementType & GetValue() const
Definition List.h:452
TDoubleLinkedListNode * GetHead() const
Definition List.h:727
bool AddTail(const ElementType &InElement)
Definition List.h:573
int32 Num() const
Definition List.h:786
Definition AndroidPlatformMisc.h:14
FORCEINLINE void InsertBefore(const ElementType &NewNode, ListType &List, NodeType *Node)
Definition ChunkSearch.h:26
FORCEINLINE void ForEach(const FBuildPatchAppManifest &Manifest, const TFunction< void(const FFileManifest &)> &Func)
Definition ChunkSearch.h:52
FORCEINLINE void InsertAfter(const ElementType &NewNode, ListType &List, NodeType *Node)
Definition ChunkSearch.h:32
FORCEINLINE TArray< FString > GetFileList(const FBuildPatchAppManifest &Manifest)
Definition ChunkSearch.h:45
FORCEINLINE void Copy(const TDoubleLinkedList< ElementType > &CopyFrom, TDoubleLinkedList< ElementType > &CopyTo)
Definition ChunkSearch.h:17
Definition BuildPatchFileConstructor.h:28
@ List
Definition ITypedTableView.h:38
Definition BlockStructure.h:10
Definition BlockRange.h:13
static FBlockRange FromIntersection(const FBlockRange &RangeA, const FBlockRange &RangeB)
Definition BlockRange.h:57
static FBlockRange FromFirstAndSize(uint64 InFirst, uint64 InSize)
Definition BlockRange.h:42
Definition ChunkData.h:188
Definition ChunkSearch.h:73
FBlockRange BuildRange
Definition ChunkSearch.h:87
FChunkNode(const FChunkNode &CopyFrom)
Definition ChunkSearch.h:80
FChunkPart ChunkPart
Definition ChunkSearch.h:88
FChunkNode(const FChunkPart &InChunkPart, const FBlockRange &InBuildRange)
Definition ChunkSearch.h:75
Definition ChunkSearch.h:94
const FFileManifest *const Manifest
Definition ChunkSearch.h:109
FFileNode(const FFileManifest *const InManifest, const FBlockRange &InBuildRange)
Definition ChunkSearch.h:96
FFileNode(const FFileNode &CopyFrom)
Definition ChunkSearch.h:101
const FBlockRange BuildRange
Definition ChunkSearch.h:110
FChunkDList ChunkParts
Definition ChunkSearch.h:111
Definition ManifestData.h:159
TArray< FFileManifest > FileList
Definition ManifestData.h:173
Definition ManifestData.h:140
uint64 FileSize
Definition ManifestData.h:155
TArray< FChunkPart > ChunkParts
Definition ManifestData.h:153