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á.
Armazene os dados de campo de uma entidade
Os exemplos a seguir demonstram como você pode armazenar (gravar na estrutura de estado) os dados de campo de uma entidade que o aplicativo possui. Esses exemplos usam a seguinte função:
AWS_WEAVERRUNTIME_API Result<void> StoreEntityField( Transaction& txn, const Entity& entity, TypeId keyTypeId, FieldIndex index, std::int8_t* src, std::size_t length) noexcept;
OApi::TypeId keyTypeId
parâmetro representa o tipo de dados dos dados transmitidos.
OApi::TypeId keyTypeId
parâmetro deve receber o formulário correspondenteApi::TypeId
Api::BuiltinTypeId
. Se não houver uma conversão apropriada, você poderá usarApi::BuiltinTypeId::Dynamic
.
Para tipos de dados complexos, useApi::BuiltInTypeId::Dynamic
.
O valor deFieldIndex index
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> 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)); }
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> 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)); }