载入中...
搜索中...
未找到
ProductionAdvanced.cpp
浏览该文件的文档.
10eve::Result<T> advancedFailure(eve::DiagnosticCode code, std::string message, std::string path = {}) {
24 const auto residual = residualNumerator <= 0 ? 0 : (residualNumerator + efficiency - 1) / efficiency;
35 const auto it = std::lower_bound(schedulerStrategies_.begin(), schedulerStrategies_.end(), owner,
37 return it != schedulerStrategies_.end() && it->first == owner ? it->second : SchedulerStrategy::Priority;
42 const auto key = std::tuple(std::string(owner), definition.reference.id().format(), definition.generation.value());
56 const auto key = std::tuple(std::string(owner), definition.reference.id().format(), definition.generation.value());
66eve::Result<void> WorkQueue::setTagAvailable(std::string_view owner, std::string_view tag, bool available) {
80eve::Result<void> WorkQueue::setSchedulerStrategy(std::string_view owner, SchedulerStrategy strategy) {
82 return advancedFailure<void>(eve::DiagnosticCode::InvalidArgument, "scheduler owner is required", "owner");
99 task.repeat.observedStock = static_cast<int>(std::min<std::int64_t>(updated, std::numeric_limits<int>::max()));
128 if (task->reservationState == ReservationState::None || task->reservationState == ReservationState::Released)
140 return advancedFailure<void>(eve::DiagnosticCode::NotFound, "work task was not found", "taskId");
203 prediction.exact = prediction.blockReason.empty() && task.state == TaskState::Queued && earliest == 0;
219 diagnostic.code = reason.value().empty() ? std::string(taskStateName(task.state)) : reason.value();
220 diagnostic.message = reason.value().empty() ? "task state is " + std::string(taskStateName(task.state))
std::array< std::uint64_t, kPixelChunkSize *kPixelChunkSize > updated
Definition PixelWorld.cpp:53
std::vector< ecs::EntityHandle > schedule
The round's activation queue, resolved against the target battle.
Definition TacticsPersistence.cpp:170
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
constexpr std::int64_t nanoseconds() const noexcept
Return the exact signed nanosecond representation.
Definition Time.h:69
static constexpr Duration fromNanoseconds(std::int64_t nanoseconds) noexcept
Construct an exact duration from nanoseconds.
Definition Time.h:55
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
constexpr std::uint64_t value() const noexcept
Returns the underlying value at an explicit protocol boundary.
Definition StrongUint64.h:26
eve::Result< std::string > blockReason(std::string_view taskId) const
Returns the deterministic reason a task cannot start, or an empty string when runnable.
Definition Production.cpp:125
bool definitionAvailable(std::string_view owner, const eve::definition::DefinitionHandle &definition) const
Reports whether an exact definition incarnation is available to an owner.
Definition ProductionAdvanced.cpp:40
bool tagAvailable(std::string_view owner, std::string_view tag) const
Reports whether an exact tag is available to an owner.
Definition ProductionAdvanced.cpp:46
eve::OptionalRef< const ProductionTask > find(std::string_view taskId)
Finds a retained task by stable ID.
Definition Production.cpp:332
eve::Result< std::uint32_t > advanceTo(eve::SimulationTick target, eve::Duration fixedDelta, std::uint32_t maxSteps)
Advances through bounded fixed steps to a target tick.
Definition ProductionAdvanced.cpp:149
eve::Result< void > setSchedulerStrategy(std::string_view owner, SchedulerStrategy strategy)
Selects an owner's deterministic queue ordering strategy.
Definition ProductionAdvanced.cpp:80
eve::Result< void > setDefinitionAvailable(std::string_view owner, const eve::definition::DefinitionHandle &definition, bool available)
Publishes or withdraws one generation-qualified definition fact for an owner.
Definition ProductionAdvanced.cpp:51
eve::Result< ProductionPrediction > predict(std::string_view taskId) const
Predicts task timing without mutating queue state.
Definition ProductionAdvanced.cpp:167
SchedulerStrategy schedulerStrategy(std::string_view owner) const
Returns an owner's queue ordering strategy, defaulting to Priority.
Definition ProductionAdvanced.cpp:34
eve::Result< void > setTagAvailable(std::string_view owner, std::string_view tag, bool available)
Publishes or withdraws one exact tag fact for an owner.
Definition ProductionAdvanced.cpp:66
eve::Result< ProductionReservationRelease > releaseReservation(std::string_view taskId, std::string_view releaseId)
Idempotently releases cancelled/failed reservation evidence for domain rollback.
Definition ProductionAdvanced.cpp:111
eve::Result< void > reportStock(std::string_view taskId, int observedStock)
Reports current domain stock for a maintain-stock task and reschedules deterministically.
Definition ProductionAdvanced.cpp:137
int runningCount(std::string_view owner) const
Returns the number of currently running tasks for an owner.
Definition Production.cpp:98
eve::Result< ProductionDiagnostic > diagnose(std::string_view taskId) const
Returns structured diagnostic state for a task.
Definition ProductionAdvanced.cpp:207
eve::Result< void > advance(const eve::SimulationStep &step)
Applies one injected deterministic simulation step.
Definition Production.cpp:509
int slotCount(std::string_view owner) const
Returns an owner's slot count, defaulting to one.
Definition Production.cpp:92
Definition QueueInspector.h:12
@ Running
@ Cancelled
std::string_view taskStateName(TaskState state)
Returns the stable lowercase name of a task state.
Definition Production.cpp:56
@ InvalidArgument
@ NotFound
@ PreconditionViolation
@ Conflict
@ NoOp
@ Applied
detail::StrongUint64< detail::SimulationTickTag > SimulationTick
Deterministic simulation time step; it is not wall-clock time.
Definition Time.h:31
A generation-qualified reference to one definition incarnation.
Definition DefinitionRuntime.h:69
Structured task diagnostic carrying stable correlation identity.
Definition Production.h:115
std::string correlationId
Definition Production.h:116
Side-effect-free estimate under an unchanged queue configuration.
Definition Production.h:106
eve::Duration estimatedCompletionAfter
Definition Production.h:110
eve::Duration estimatedStartAfter
Definition Production.h:109
std::string blockReason
Definition Production.h:107
eve::Duration ownWorkRemaining
Definition Production.h:108
std::uint32_t totalCycles
Definition Production.h:99
int maintainStockTarget
Definition Production.h:101
std::string releaseId
Definition Production.h:81
std::string settlementId
Definition Production.h:47
A subject-agnostic continuous task retained for audit and save games.
Definition Production.h:158
ReservationState reservationState
Definition Production.h:169
std::uint32_t completedCycles
Definition Production.h:179
std::uint32_t refundPermille
Definition Production.h:184
std::uint32_t workRemainderPermille
Unapplied fixed-point work numerator in thousandths of one nanosecond.
Definition Production.h:183
std::string lastSettlementId
Definition Production.h:172
ProductionSettlementReceipt settlement
Definition Production.h:171
ProductionReservationRelease reservationRelease
Definition Production.h:170