Speichern 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.

Speichern der Felddaten einer Entität

Die folgenden Beispiele zeigen, wie Sie die Felddaten einer Entität, die der App gehört, speichern (in den Zustandstext schreiben) können. In diesen Beispielen wird die folgende Funktion verwendet:

AWS_WEAVERRUNTIME_API Result<void> StoreEntityField( Transaction& txn, const Entity& entity, TypeId keyTypeId, FieldIndex index, std::int8_t* src, std::size_t length) noexcept;

Der Api::TypeId keyTypeId Parameter stellt den Datentyp der übergebenen Daten dar.

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.

Verwenden Sie für komplexe Datentypen Api::BuiltInTypeId::Dynamic.

Anmerkung

Der Wert von 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> SetEntityFields( Api::Entity& entity, Transaction& transaction) { bool value = true; auto* src = reinterpret_cast<std::int8_t*>(value); size_t length = sizeof(*value); WEAVERRUNTIME_TRY(Api::StoreEntityField( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Bool), k_isTrueFieldId, src, length)); }
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> SetEntityFields( Api::Entity& entity, Transaction& transaction) { Data data = { /* boolData */ false, /* floatData */ -25.93 }; auto* src = reinterpret_cast<std::int8_t*>(data); size_t length = sizeof(*data); WEAVERRUNTIME_TRY(Api::StoreEntityField( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Dynamic), k_dataFieldId, src, length)); }