载入中...
搜索中...
未找到
ArtifactProvider.cpp
浏览该文件的文档.
46bool readUint64String(const eve::Value::Object& object, const char* name, std::uint64_t& output) {
119 eve::Diagnostic::error(eve::DiagnosticCode::Failed, "scene artifact prepare failure was injected"));
121 return eve::Result<std::unique_ptr<eve::artifact::PreparedPublication>>::failure(eve::Diagnostic::error(
122 eve::DiagnosticCode::InvalidArgument, "scene publication requires identity, build key and parts"));
125 eve::Diagnostic::error(eve::DiagnosticCode::Conflict, "scene artifact identity is already published"));
137 return eve::Result<std::unique_ptr<eve::artifact::PreparedPublication>>::failure(eve::Diagnostic::error(
138 eve::DiagnosticCode::InvalidArgument, "scene artifact part has invalid identity, role or bounds"));
147 eve::Diagnostic::error(eve::DiagnosticCode::Failed, "scene artifact prepare allocation failed"));
201 eve::Diagnostic::error(eve::DiagnosticCode::Conflict, "scene artifact restore requires an empty registry"));
207 if (!object || !providerName || *providerName != "scene.cpu-registry" || !hasSupportedVersion(*object) || !array)
209 eve::Diagnostic::error(eve::DiagnosticCode::ParseError, "invalid scene artifact provider state"));
221 if (!item || !readString(*item, "artifactId", idText) || !readString(*item, "buildKey", buildKey) ||
239 const auto* boundsObject = boundsEncoded ? boundsEncoded->getIf<eve::Value::Object>() : nullptr;
249 next = std::max(next, handle.index() == std::numeric_limits<std::uint32_t>::max() ? handle.index()
255 eve::Diagnostic::error(eve::DiagnosticCode::Failed, "scene artifact restore allocation failed"));
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 scene-module provider for generated artifact publication.
Definition ArtifactProvider.h:44
eve::Result< std::unique_ptr< eve::artifact::PreparedPublication > > prepare(const eve::artifact::PublicationView &publication) override
Stage one artifact and copy all data needed after prepare.
Definition ArtifactProvider.cpp:115
const SceneArtifactRecord * find(eve::PersistentId id) const noexcept
Find a committed scene artifact by persistent identity.
Definition ArtifactProvider.cpp:156
eve::Result< void > restoreState(const eve::Value &state) override
Replace the registry from validated backend-neutral state.
Definition ArtifactProvider.cpp:198
void clear() noexcept
Remove all records and reset the local handle allocator.
Definition ArtifactProvider.cpp:162
eve::Result< eve::Value > snapshotState() const override
Export scene identity, build keys, handles and part bounds.
Definition ArtifactProvider.cpp:168
SceneArtifactStage(SceneArtifactProvider &owner, SceneArtifactRecord record)
Definition ArtifactProvider.cpp:96
void rollback() noexcept override
Discard the prepared mutation; idempotent and non-throwing.
Definition ArtifactProvider.cpp:105
void commit() noexcept override
Make the prepared mutation observable; the operation cannot fail.
Definition ArtifactProvider.cpp:99
Definition AvatarInstance.h:33
bool readUint64String(const eve::Value::Object &object, const char *name, std::uint64_t &output)
Definition ArtifactProvider.cpp:46
eve::Result< eve::Value > failureValue(eve::DiagnosticCode code, std::string message)
Definition ArtifactProvider.cpp:22
eve::Value boundsValue(const eve::artifact::Bounds &bounds)
Definition ArtifactProvider.cpp:83
bool validBounds(const eve::artifact::Bounds &bounds) noexcept
Definition ArtifactProvider.cpp:27
bool readBounds(const eve::Value::Object &object, eve::artifact::Bounds &bounds)
Definition ArtifactProvider.cpp:74
void registerSceneArtifactProvider()
Register the scene provider in the common capability registry.
Definition ArtifactProvider.cpp:267
eve::RuntimeHandle< SceneArtifactHandleTag > SceneArtifactHandle
Generation-qualified handle for a scene artifact record.
Definition ArtifactProvider.h:21
SceneArtifactProvider & sceneArtifactProvider() noexcept
Return the process-owned scene artifact provider singleton.
Definition ArtifactProvider.cpp:262
bool readFloat(const eve::Value::Object &object, const char *name, float &output)
Definition ArtifactProvider.cpp:59
bool readString(const eve::Value::Object &object, const char *name, std::string &output)
Definition ArtifactProvider.cpp:38
eve::Result< SceneArtifactRecord > failureRecord(eve::DiagnosticCode code, std::string message)
Definition ArtifactProvider.cpp:17
bool hasSupportedVersion(const eve::Value::Object &object) noexcept
Definition ArtifactProvider.cpp:53
@ InvalidArgument
@ Failed
@ ParseError
@ Conflict
@ Applied
Definition Container.h:602
Scene-owned CPU registry provider for generated artifacts.
Backend-neutral axis-aligned bounds copied from a generated part.
Definition ArtifactPublication.h:37
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 scene registry record for one published artifact.
Definition ArtifactProvider.h:30
std::vector< SceneArtifactNode > nodes
Definition ArtifactProvider.h:34