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

Memuat data bidang entitas

Contoh berikut menunjukkan bagaimana Anda dapat memuat (membaca dari kain negara) data bidang 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 sesuaiApi::TypeId dariApi::BuiltinTypeId. Jika tidak ada konversi yang sesuai, Anda dapat menggunakannyaApi::BuiltinTypeId::Dynamic.

catatan

NilaiFieldIndex 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 menggunakanstruct 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); }