Menyimpan data bidang entitas - AWS SimSpace Weaver

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyimpan data bidang entitas

Contoh berikut menunjukkan bagaimana Anda dapat menyimpan (menulis ke kain negara) data bidang entitas yang dimiliki aplikasi. Contoh-contoh ini menggunakan fungsi berikut:

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

Api::TypeId keyTypeIdParameter mewakili tipe data yang dilewatkan dalam data.

Api::TypeId keyTypeIdParameter harus menerima yang sesuaiApi::TypeId dariApi::BuiltinTypeId. Jika tidak ada konversi yang sesuai, Anda dapat menggunakannyaApi::BuiltinTypeId::Dynamic.

Untuk tipe data yang kompleks, gunakanApi::BuiltInTypeId::Dynamic.

catatan

Nilai tersebutFieldIndex index harus lebih besar dari 0. Nilai 0 dicadangkan untuk kunci indeks (lihatStoreEntityIndexKey()).

contoh Contoh menggunakan tipe data primitif
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)); }
contoh Contoh menggunakanstruct untuk menyimpan data
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)); }