Memuat data bidang suatu entitas - AWS SimSpace Weaver

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

Memuat data bidang suatu entitas

Contoh berikut menunjukkan bagaimana Anda dapat memuat (membaca dari struktur status) data bidang suatu entitas. Contoh-contoh ini menggunakan fungsi berikut:

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

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

catatan

Nilai FieldIndex indeks 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> 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); }
contoh Contoh menggunakan a struct untuk menyimpan data
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); }