nl::Weave::TLV

Definições para trabalhar com dados codificados no formato TLV do Weave.

Resumo

O Weave TLV é um método de codificação generalizado para dados estruturados simples. Ela compartilha muitas propriedades com o formato de serialização JSON comumente usado e é consideravelmente mais compacto.

Enumerações

@71 enum
@73 enum
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
enum
@75 enum
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
enum
TLVElementType enum
TLVFieldSize enum
TLVTagControl enum
TLVTagFields enum
TLVType enum
Uma enumeração que identifica o tipo de um elemento TLV.

Variáveis

kWeaveTLVCopyChunkSize = 16
const size_t
Copia um elemento TLV de um objeto de leitor para o gravador.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

remotas

CommonTag(uint32_t tagNum)
uint64_t
Gera a representação da API de uma tag TLV de perfil comum.
ContextTag(uint8_t tagNum)
uint64_t
Gera a representação da API para a tag TLV específica do contexto.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Retorna verdadeiro se a tag fornecida for específica do contexto.
IsProfileTag(uint64_t tag)
bool
Retorna verdadeiro de que a tag fornecida é uma tag específica do perfil.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Retorna verdadeiro se o tipo de TLV especificado for válido.
ProfileIdFromTag(uint64_t tag)
uint32_t
Retorna o ID do perfil de uma tag TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Retorna o número do perfil de uma tag TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Gera a representação da API de uma tag TLV específica do perfil com base em um ID de perfil e um número de tag.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Gera a representação da API de uma tag TLV específica do perfil com base em um ID do fornecedor, número de perfil e número de tag.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Retorna verdadeiro se o tipo de TLV especificado implica a presença de um campo de comprimento associado.
TLVTypeHasValue(uint8_t type)
bool
Retorna verdadeiro se o tipo de TLV especificado implicar a presença de um campo de valor associado.
TLVTypeIsContainer(uint8_t type)
bool
Retorna verdadeiro se o tipo de TLV especificado for um contêiner.
TLVTypeIsString(uint8_t type)
bool
Retorna verdadeiro se o tipo TLV especificado for uma string UTF8 ou de byte.
TagNumFromTag(uint64_t tag)
uint32_t
Retorna o número de uma tag TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Retorna o ID do fornecedor de uma tag TLV.

Aulas

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

Fornece um analisador com eficiência de memória para dados codificados no formato TLV do Weave.

nl::Weave::TLV::TLVUpdater

Fornece uma interface unificada de leitor/gravador para edição/adição/exclusão de elementos na codificação TLV.

nl::Weave::TLV::TLVWriter

Fornece um codificador com eficiência de memória para gravar dados no formato TLV do Weave.

nl::Weave::TLV::WeaveCircularTLVBuffer

O WeaveCircularTLVBuffer fornece armazenamento circular para nl::Weave::TLV::TLVWriter e nl::Weave::TLVTLVReader.

Namespaces

nl::Weave::TLV::Debug

Esse namespace inclui tipos e interfaces para depuração e geração de registros do Weave TLV.

nl::Weave::TLV::Utilities

Esse namespace inclui tipos e interfaces utilitárias para gerenciar e trabalhar com o TLV do Weave.

Enumerações

@71

 @71

@73

 @73

@74

 @74
Propriedades
AnonymousTag

Um valor que indica um elemento TLV sem tag (por exemplo,

um elemento anônimo).

75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Propriedades
kProfileIdNotSpecified

Usado para indicar a ausência de um ID de perfil em uma variável ou um membro.

É basicamente o mesmo que kWeaveProfile_Notspecified definido em WeaveProfiles.h.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Uma enumeração que identifica o tipo de um elemento TLV.

Variáveis

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Copia um elemento TLV de um objeto de leitor para o gravador.

O método CopyElement() codifica um novo elemento TLV com tipo e valor recebidos de um objeto TLVReader. Quando o método é chamado, o objeto leitor fornecido precisa ser posicionado no elemento TLV de origem. O elemento recém-codificado terá o mesmo tipo e conteúdo que o contêiner de entrada, mas a tag será definida como o argumento especificado. Se o elemento fornecido for um contêiner TLV (estrutura, matriz ou caminho), todo o conteúdo do contêiner será copiado.

Detalhes
Parâmetros
[in] tag
A tag TLV a ser codificada com o contêiner ou AnonymousTag se o contêiner precisar ser codificado sem uma tag. Os valores de tag devem ser criados com uma das funções de definição de tag ProfileTag(), ContextTag() ou CommonTag().
[in] reader
Uma referência a um objeto TLVReader que identifica um elemento TLV pré-codificado cujo tipo e valor devem ser copiados.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INCORRECT_STATE
Se o leitor fornecido não estiver posicionado em um elemento.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Se um gravador de contêiner foi aberto no gravador atual e ainda não foi fechado.
WEAVE_ERROR_TLV_UNDERRUN
Se a codificação TLV subjacente associada ao leitor fornecido foi encerrada prematuramente.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Se o leitor fornecido encontrou um tipo de elemento TLV inválido ou incompatível.
WEAVE_ERROR_INVALID_TLV_TAG
Se o leitor informado encontrou uma tag TLV em um contexto inválido ou se a tag fornecida for inválida ou inadequada no contexto em que o novo contêiner está sendo gravado.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se a gravação do valor exceder o limite do número máximo de bytes especificado quando o gravador foi inicializado.
WEAVE_ERROR_NO_MEMORY
Se uma tentativa de alocar um buffer de saída falhar devido à falta de memória.
other
Outros erros do Weave ou específicos da plataforma retornados pelas funções configuradas GetNewBuffer() ou FinalizeBuffer(), ou pela função GetNextBuffer() associada ao objeto do leitor.

sTagSizes

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

remotas

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Gera a representação da API de uma tag TLV de perfil comum.

Detalhes
Parâmetros
[in] tagNum
O número da tag de perfil comum atribuído à tag.
Retorna
Um número inteiro de 64 bits que representa a tag.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Gera a representação da API para a tag TLV específica do contexto.

Detalhes
Parâmetros
[in] tagNum
O número da tag específica do contexto atribuído à tag.
Retorna
Um número inteiro de 64 bits que representa a tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Retorna verdadeiro se a tag fornecida for específica do contexto.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Retorna verdadeiro de que a tag fornecida é uma tag específica do perfil.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Retorna verdadeiro se o tipo de TLV especificado for válido.

Detalhes
Retorna
true se o tipo TLV especificado for válido. Caso contrário, false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Retorna o ID do perfil de uma tag TLV.

Detalhes
Parâmetros
[in] tag
A representação da API de uma tag TLV específica do perfil.
Retorna
O ID do perfil.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Retorna o número do perfil de uma tag TLV.

Detalhes
Parâmetros
[in] tag
A representação da API de uma tag TLV específica do perfil.
Retorna
O número do perfil associado.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Gera a representação da API de uma tag TLV específica do perfil com base em um ID de perfil e um número de tag.

Detalhes
Parâmetros
[in] profileId
O ID do perfil no qual a tag é definida.
[in] tagNum
O número da tag específica do perfil atribuído à tag.
Retorna
Um número inteiro de 64 bits que representa a tag.

ProfileTag

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

Gera a representação da API de uma tag TLV específica do perfil com base em um ID do fornecedor, número de perfil e número de tag.

Detalhes
Parâmetros
[in] vendorId
O ID do fornecedor que definiu a tag.
[in] profileNum
O número atribuído ao fornecedor referente ao perfil em que a tag está definida.
[in] tagNum
O número da tag específica do perfil atribuído à tag.
Retorna
Um número inteiro de 64 bits que representa a tag.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Retorna verdadeiro se o tipo de TLV especificado implica a presença de um campo de comprimento associado.

Detalhes
Retorna
true se o tipo TLV especificado implicar a presença de um campo de comprimento associado. Caso contrário, false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Retorna verdadeiro se o tipo de TLV especificado implicar a presença de um campo de valor associado.

Detalhes
Retorna
true se o tipo TLV especificado implicar a presença de um campo de valor associado. Caso contrário, false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Retorna verdadeiro se o tipo de TLV especificado for um contêiner.

Detalhes
Retorna
true se o tipo de TLV especificado for um contêiner. Caso contrário, false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Retorna verdadeiro se o tipo TLV especificado for uma string UTF8 ou de byte.

Detalhes
Retorna
true se o tipo de TLV especificado for uma string UTF8 ou de byte. Caso contrário, false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Retorna o número de uma tag TLV.

Detalhes
Parâmetros
[in] tag
A representação da API de uma tag TLV específica do perfil ou do contexto.
Retorna
O número da tag associada.
Consulte também:
IsProfileTag() e IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Retorna o ID do fornecedor de uma tag TLV.

Detalhes
Parâmetros
[in] tag
A representação da API de uma tag TLV específica do perfil.
Retorna
O ID do fornecedor associado.