终止支持通知:2026 年 5 月 20 日, AWS 将终止对的支持。 AWS SimSpace Weaver 2026 年 5 月 20 日之后,您将无法再访问 SimSpace Weaver 控制台或 SimSpace Weaver 资源。有关更多信息,请参阅AWS SimSpace Weaver 终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
加载实体的字段数据
以下示例演示如何加载(从 State Fabric 读取)实体的字段数据。这些示例使用以下函数:
Result<std::size_t> LoadEntityField( Transaction& txn, const Entity& entity, TypeId keyTypeId, FieldIndex index, std::int8_t** dest) noexcept;
Api::TypeId keyTypeId
参数应从 Api::BuiltinTypeId
接收相应的 Api::TypeId
。如果没有适当的转换,则可以使用 Api::BuiltinTypeId::Dynamic
。
注意
FieldIndex
索引的值必须大于 0。0 是为索引键保留的值(请参阅 StoreEntityIndexKey()
)。
例 使用基元数据类型的示例
namespace { constexpr Api::FieldIndex k_isTrueFieldId { /* value */ 1 }; } Result<void> LoadEntityFields( Api::Entity& entity, Transaction& transaction) { std::int8_t* dest = nullptr; WEAVERRUNTIME_TRY(Api::LoadEntityField( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Bool), k_isTrueFieldId, &dest)); bool isTrueValue = *reinterpret_cast<bool*>(dest); }
例 使用 a 的示例 struct 来保存数据
namespace { constexpr Api::FieldIndex k_dataFieldId { /* value */ 1 }; } struct Data { bool boolData; float floatData; }; Result<void> LoadEntityFields( Api::Entity& entity, Transaction& transaction) { std::int8_t* dest = nullptr; WEAVERRUNTIME_TRY(Api::LoadEntityField( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Dynamic), k_dataFieldId, &dest)); Data dataValue = *reinterpret_cast<Data*>(dest); }