nl::Weave::TLV

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

Resumo

O TLV do Weave é um método de codificação generalizado para dados estruturados simples. Ele compartilha muitas propriedades com o formato de serialização JSON comumente usado, além de ser consideravelmente mais compacto ao longo da transmissão.

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

Funções

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 true se a tag fornecida for específica do contexto.
IsProfileTag(uint64_t tag)
bool
Retorna verdadeiro caso a tag fornecida seja uma tag específica do perfil.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Retorna verdadeiro se o tipo 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 de API de uma tag TLV específica de perfil com base em um ID de perfil e número de tag.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Gera a representação de API de uma tag TLV específica do perfil com base em um ID de 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 TLV especificado implica a presença de um campo de comprimento associado.
TLVTypeHasValue(uint8_t type)
bool
Retorna verdadeiro se o tipo TLV especificado implica a presença de um campo de valor associado.
TLVTypeIsContainer(uint8_t type)
bool
Retorna "true" 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 bytes.
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.

Classes

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 editar/adicionar/excluir 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 oferece 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 registro de TLV do Weave.

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 significa um elemento TLV sem tag (ou seja,

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

Ele é essencialmente 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, cujo tipo e valor são obtidos de um objeto TLVReader. Quando o método é chamado, espera-se que o objeto leitor fornecido seja posicionado no elemento TLV de origem. O elemento recém-codificado terá o mesmo tipo e conteúdo do 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 precisam 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 com tipo e valor que precisam ser copiados.
Valores de retorno
WEAVE_NO_ERROR
Se o método for 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 tiver sido aberto no gravador atual e ainda não tiver sido fechado.
WEAVE_ERROR_TLV_UNDERRUN
Se a codificação TLV subjacente associada ao leitor fornecido terminar 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 fornecido 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 alocação de um buffer de saída falhar devido à falta de memória.
other
Outros erros específicos do Weave ou da plataforma retornados pelas funções GetNewBuffer() ou FinalizeBuffer() configuradas ou pela função GetNextBuffer() associada ao objeto do leitor.

sTagSizes

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

Funções

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.
Retornos
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.
Retornos
Um número inteiro de 64 bits que representa a tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

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

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Retorna verdadeiro caso a tag fornecida seja uma tag específica do perfil.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

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

Detalhes
Retornos
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.
Retornos
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.
Retornos
O número do perfil associado.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Gera a representação de API de uma tag TLV específica de perfil com base em um ID de perfil e 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.
Retornos
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 de API de uma tag TLV específica do perfil com base em um ID de 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 pelo fornecedor para o perfil no qual a tag foi definida.
[in] tagNum
O número da tag específica do perfil atribuído à tag.
Retornos
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 TLV especificado implica a presença de um campo de comprimento associado.

Detalhes
Retornos
true: se o tipo TLV especificado implica a presença de um campo de comprimento associado. caso contrário, false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

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

Detalhes
Retornos
true, se o tipo TLV especificado implica a presença de um campo de valor associado. caso contrário, false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

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

Detalhes
Retornos
true se o tipo 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 bytes.

Detalhes
Retornos
true se o tipo TLV especificado for uma string UTF8 ou de bytes. 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.
Retornos
O número da tag associada.
Confira 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.
Retornos
O ID do fornecedor associado.