Laden der Felddaten einer Entität - AWS SimSpace Weaver

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Laden der Felddaten einer Entität

Die folgenden Beispiele zeigen, wie Sie die Felddaten einer Entität laden (aus dem Zustandsmaterial lesen). In diesen Beispielen wird die folgende Funktion verwendet:

Result<std::size_t> LoadEntityField( Transaction& txn, const Entity& entity, TypeId keyTypeId, FieldIndex index, std::int8_t** dest) noexcept;

Der Api::TypeId keyTypeId Parameter sollte das entsprechende Api::TypeId von erhaltenApi::BuiltinTypeId. Wenn es keine angemessene Konvertierung gibt, können Sie verwendenApi::BuiltinTypeId::Dynamic.

Anmerkung

Der Wert des FieldIndex Index muss größer als 0 sein. Der Wert 0 ist für den Indexschlüssel reserviert (siehe StoreEntityIndexKey()).

Beispiel für die Verwendung primitiver Datentypen
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); }
Beispiel für die Verwendung eines struct zum Speichern der Daten
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); }