Carregar os dados de campo de uma entidade - AWS SimSpace Tecelão

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Carregar os dados de campo de uma entidade

Os exemplos a seguir demonstram como você pode carregar (ler a partir da estrutura de estados) os dados de campo de uma entidade. Esses exemplos usam a seguinte função:

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

OApi::TypeId keyTypeId parâmetro deve receber o formulário correspondenteApi::TypeIdApi::BuiltinTypeId. Se não houver uma conversão apropriada, você poderá usarApi::BuiltinTypeId::Dynamic.

nota

O valor doFieldIndex índice deve ser maior que 0. O valor 0 é reservado para a chave do índice (consulteStoreEntityIndexKey()).

exemplo Exemplo de uso de tipos de dados primitivos
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); }
exemplo Exemplo de uso de umstruct para armazenar os dados
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); }