载入中...
搜索中...
未找到
ArtifactProvider.cpp
浏览该文件的文档.
73 eve::Diagnostic::error(eve::DiagnosticCode::Failed, "map artifact prepare failure was injected"));
75 return eve::Result<std::unique_ptr<eve::artifact::PreparedPublication>>::failure(eve::Diagnostic::error(
79 eve::Diagnostic::error(eve::DiagnosticCode::Conflict, "map artifact identity is already published"));
83 if (part.kind == eve::artifact::PartKind::Grid && (part.role == "topology" || topology == nullptr))
89 return eve::Result<std::unique_ptr<eve::artifact::PreparedPublication>>::failure(eve::Diagnostic::error(
90 eve::DiagnosticCode::PreconditionViolation, "map publication requires a complete grid topology"));
126 if (!record || x < 0 || y < 0 || x >= record->width || y >= record->height) return std::nullopt;
161 eve::Diagnostic::error(eve::DiagnosticCode::Failed, "map artifact snapshot allocation failed"));
168 eve::Diagnostic::error(eve::DiagnosticCode::Conflict, "map artifact restore requires an empty registry"));
174 if (!object || !providerName || *providerName != "map.cpu-registry" || !hasSupportedVersion(*object) || !records)
176 eve::Diagnostic::error(eve::DiagnosticCode::ParseError, "invalid map artifact provider state"));
192 if (!item || !readString(*item, "artifactId", idText) || !readString(*item, "buildKey", buildKey) ||
236void registerMapArtifactProvider() { eve::cap::provide<eve::artifact::IMapArtifactAdapter>(&mapArtifactProvider()); }
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
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static constexpr RuntimeHandle fromPacked(std::uint64_t value) noexcept
Reconstructs a handle from an explicit packed boundary value.
Definition RuntimeHandle.h:190
static constexpr index_type invalidIndex
Reserved index value shared by all invalid handles.
Definition RuntimeHandle.h:124
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
Value * find(const std::string &key) noexcept
Return an object member, or nullptr when absent.
Definition Value.cpp:124
A prepared consumer mutation with a non-throwing visibility boundary.
Definition ArtifactPublication.h:102
constexpr bool isNil() const noexcept
Returns whether this value is the all-zero nil ID.
Definition Identity.h:176
static std::optional< Id128 > parse(std::string_view text) noexcept
Parses canonical UUID text.
Definition Identity.h:151
Real map-module provider for generated grid publication.
Definition ArtifactProvider.h:41
void clear() noexcept
Remove all records and reset the local handle allocator.
Definition ArtifactProvider.cpp:131
eve::Result< std::unique_ptr< eve::artifact::PreparedPublication > > prepare(const eve::artifact::PublicationView &publication) override
Stage a topology grid and copy its cells before commit.
Definition ArtifactProvider.cpp:69
const MapArtifactRecord * find(eve::PersistentId id) const noexcept
Find a committed map artifact; the pointer is borrowed. @ownership Borrowed from this provider; calle...
Definition ArtifactProvider.cpp:117
eve::Result< void > restoreState(const eve::Value &state) override
Replace the registry from validated topology state.
Definition ArtifactProvider.cpp:165
eve::Result< eve::Value > snapshotState() const override
Export map identity, build keys, handles and topology cells.
Definition ArtifactProvider.cpp:137
std::optional< std::uint32_t > cell(eve::PersistentId id, std::int32_t x, std::int32_t y) const noexcept
Return one semantic cell, or empty for an invalid coordinate.
Definition ArtifactProvider.cpp:123
void commit() noexcept override
Make the prepared mutation observable; the operation cannot fail.
Definition ArtifactProvider.cpp:55
void rollback() noexcept override
Discard the prepared mutation; idempotent and non-throwing.
Definition ArtifactProvider.cpp:60
MapArtifactStage(MapArtifactProvider &owner, MapArtifactRecord record)
Definition ArtifactProvider.cpp:53
Map-owned CPU registry provider for generated grid artifacts.
放置世界:格子占用(多通道)+ 地形语义 + 已放置建筑实例。 行为由 PlacementSystem 提供;本类暴露便于脚本绑定的薄封装方法。 坐标换算统一走 eve::grid(支持 rectang...
Definition PlacementWorld.h:19
eve::RuntimeHandle< MapArtifactHandleTag > MapArtifactHandle
Generation-qualified handle for a map artifact record.
Definition ArtifactProvider.h:22
bool readI64(const eve::Value::Object &object, const char *name, std::int64_t &output)
Definition ArtifactProvider.cpp:35
void registerMapArtifactProvider()
Register the map provider in the common capability registry.
Definition ArtifactProvider.cpp:236
MapArtifactProvider & mapArtifactProvider() noexcept
Return the process-owned map artifact provider singleton.
Definition ArtifactProvider.cpp:231
bool readU64(const eve::Value::Object &object, const char *name, std::uint64_t &output)
Definition ArtifactProvider.cpp:28
bool readString(const eve::Value::Object &object, const char *name, std::string &output)
Definition ArtifactProvider.cpp:20
bool hasSupportedVersion(const eve::Value::Object &object) noexcept
Definition ArtifactProvider.cpp:45
@ InvalidArgument
@ PreconditionViolation
@ Failed
@ ParseError
@ Conflict
@ Applied
Definition Container.h:602
Borrowed immutable view of one generated leaf.
Definition ArtifactPublication.h:61
Borrowed immutable view of one complete generated publication.
Definition ArtifactPublication.h:85
std::span< const PartView > parts
Definition ArtifactPublication.h:90
std::string_view buildKey
Definition ArtifactPublication.h:88
Queryable map record containing the copied semantic topology.
Definition ArtifactProvider.h:25
std::vector< std::uint32_t > cells
Definition ArtifactProvider.h:31