◆ EBatchProcessStatus
| Enumerator |
|---|
| ProcessFullBatchesAndContinue | |
| ProcessAllBatchesAndStop | |
| NothingToProcess | |
◆ EConstants
| Enumerator |
|---|
| MaxObjectCountPerBatch | |
◆ FPrioritizerBatchHelper()
| UE::Net::Private::FReplicationPrioritization::FPrioritizerBatchHelper::FPrioritizerBatchHelper |
( |
uint32 |
PrioritizerCount | ) |
|
|
inlineexplicit |
◆ InitForConnection()
| void UE::Net::Private::FReplicationPrioritization::FPrioritizerBatchHelper::InitForConnection |
( |
| ) |
|
|
inline |
◆ PrepareBatch()
| EBatchProcessStatus UE::Net::Private::FReplicationPrioritization::FPrioritizerBatchHelper::PrepareBatch |
( |
FPerConnectionInfo & |
ConnInfo, |
|
|
const FNetBitArrayView |
Objects, |
|
|
const uint8 * |
PrioritizerIndices, |
|
|
const float * |
InDefaultPriorities |
|
) |
| |
|
inline |
Algorithm will get MaxBatchObjectCount dirty objects and sort them into the correct prioritizer. Return on the following conditions:
- If a prioritizer has reached at least MaxBatchObjectCount
- If all dirty objects have been sorted.
If we've processed all objects return ProcessAll. If any prioritizer has a full batch then return ProcessFull. This limits the memory footprint to a maximum of two chunks per prioritizer. Else continue.
Is there a full batch for any prioritizer? We expect checking it after the fact to be a lot faster in typical scenarios versus checking after each object addition to a prioritizer.
◆ PerPrioritizerInfos
The documentation for this class was generated from the following file: