nl::Weave::TLV::Utilities

This namespace includes types and utility interfaces for managing and working with Weave TLV.

Summary

Typedefs

IterateHandler)(const TLVReader &aReader, size_t aDepth, void *aContext) typedef

Functions

Count(const TLVReader & aReader, size_t & aCount)
Count the number of TLV elements within the specified TLV reader, descending into arrays or structures.
Count(const TLVReader & aReader, size_t & aCount, const bool aRecurse)
Count the number of TLV elements within the specified TLV reader, optionally descending into arrays or structures.
CountHandler(const TLVReader & aReader, size_t aDepth, void *aContext)
Increment the counter when iterating through the TLV data.
Find(const TLVReader & aReader, const uint64_t & aTag, TLVReader & aResult)
Search for the specified tag within the provided TLV reader.
Find(const TLVReader & aReader, const uint64_t & aTag, TLVReader & aResult, const bool aRecurse)
Search for the specified tag within the provided TLV reader, optionally descending into arrays or structures.
FindHandler(const TLVReader & aReader, size_t aDepth, void *aContext)
Search for the specified tag within the provided TLV reader.
Iterate(TLVReader & aReader, size_t aDepth, IterateHandler aHandler, void *aContext, bool aRecurse)
Iterate through the TLV data referenced by aReader and invoke aHandler for each visited TLV element in the context of aContext.
Iterate(const TLVReader & aReader, IterateHandler aHandler, void *aContext)
Iterate through the TLV data referenced by aReader and invoke aHandler for each visited TLV element in the context of aContext.
Iterate(const TLVReader & aReader, IterateHandler aHandler, void *aContext, const bool aRecurse)
Iterate through the TLV data referenced by aReader and invoke aHandler for each visited TLV element in the context of aContext.

Structs

nl::Weave::TLV::Utilities::FindContext

Typedefs

IterateHandler

WEAVE_ERROR(* IterateHandler)(const TLVReader &aReader, size_t aDepth, void *aContext)

Functions

Count

WEAVE_ERROR Count(
  const TLVReader & aReader,
  size_t & aCount
)

Count the number of TLV elements within the specified TLV reader, descending into arrays or structures.

Details
Parameters
[in] aReader
A read-only reference to the TLV reader for which to count the number of TLV elements.
[in,out] aCount
A reference to storage for the returned count. This is initialized to zero (0) prior to counting and is set to the number of elements counted on success.
Return Values
WEAVE_NO_ERROR
On success.

Count

WEAVE_ERROR Count(
  const TLVReader & aReader,
  size_t & aCount,
  const bool aRecurse
)

Count the number of TLV elements within the specified TLV reader, optionally descending into arrays or structures.

Details
Parameters
[in] aReader
A read-only reference to the TLV reader for which to count the number of TLV elements.
[in,out] aCount
A reference to storage for the returned count. This is initialized to zero (0) prior to counting and is set to the number of elements counted on success.
[in] aRecurse
A Boolean indicating whether (true) or not (false) any encountered arrays or structures should be descended into.
Return Values
WEAVE_NO_ERROR
On success.

CountHandler

WEAVE_ERROR CountHandler(
  const TLVReader & aReader,
  size_t aDepth,
  void *aContext
)

Increment the counter when iterating through the TLV data.

Details
Parameters
[in] aReader
A reference to the TLV reader containing the TLV data to count the number of TLV elements.
[in] aDepth
The current depth into the TLV data.
[in,out] aContext
A pointer to the handler-specific context which is a pointer to storage for the count value.
Return Values
WEAVE_NO_ERROR
On success.
WEAVE_ERROR_INVALID_ARGUMENT
If aContext is NULL.

Find

WEAVE_ERROR Find(
  const TLVReader & aReader,
  const uint64_t & aTag,
  TLVReader & aResult
)

Search for the specified tag within the provided TLV reader.

Details
Parameters
[in] aReader
A read-only reference to the TLV reader in which to find the specified tag.
[in] aTag
A read-only reference to the TLV tag to find.
[out] aResult
A reference to storage to a TLV reader which will be positioned at the specified tag on success.
Return Values
WEAVE_NO_ERROR
On success.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
If the specified tag aTag was not found.

Find

WEAVE_ERROR Find(
  const TLVReader & aReader,
  const uint64_t & aTag,
  TLVReader & aResult,
  const bool aRecurse
)

Search for the specified tag within the provided TLV reader, optionally descending into arrays or structures.

Details
Parameters
[in] aReader
A read-only reference to the TLV reader in which to find the specified tag.
[in] aTag
A read-only reference to the TLV tag to find.
[out] aResult
A reference to storage to a TLV reader which will be positioned at the specified tag on success.
[in] aRecurse
A Boolean indicating whether (true) or not (false) any encountered arrays or structures should be descended into.
Return Values
WEAVE_NO_ERROR
On success.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
If the specified tag aTag was not found.

FindHandler

WEAVE_ERROR FindHandler(
  const TLVReader & aReader,
  size_t aDepth,
  void *aContext
)

Search for the specified tag within the provided TLV reader.

Details
Parameters
[in] aReader
A read-only reference to the TLV reader in which to find the specified tag.
[in] aDepth
The current depth into the TLV data.
[in,out] aContext
A pointer to the handler-specific context.
Return Values
WEAVE_NO_ERROR
On success.
WEAVE_ERROR_INVALID_ARGUMENT
If aContext is NULL.
WEAVE_ERROR_MAX
If the specified tag is found.

Iterate

WEAVE_ERROR Iterate(
  TLVReader & aReader,
  size_t aDepth,
  IterateHandler aHandler,
  void *aContext,
  bool aRecurse
)

Iterate through the TLV data referenced by aReader and invoke aHandler for each visited TLV element in the context of aContext.

The iteration is aborted if aHandler returns anything other than WEAVE_NO_ERROR

Details
Parameters
[in] aReader
A reference to the TLV reader containing the TLV data to iterate.
[in] aDepth
The current depth into the TLV data.
[in] aHandler
A callback to invoke for the current TLV element being visited.
[in,out] aContext
An optional pointer to caller-provided context data.
[in] aRecurse
A Boolean indicating whether (true) or not (false) any encountered arrays or structures should be descended into.
Return Values
WEAVE_END_OF_TLV
On a successful iteration to the end of a TLV encoding, or to the end of a TLV container.
The
last value returned by aHandler, if different than WEAVE_NO_ERROR

Iterate

WEAVE_ERROR Iterate(
  const TLVReader & aReader,
  IterateHandler aHandler,
  void *aContext
)

Iterate through the TLV data referenced by aReader and invoke aHandler for each visited TLV element in the context of aContext.

The iteration is aborted if aHandler returns anything other than WEAVE_NO_ERROR

Details
Parameters
[in] aReader
A reference to the TLV reader containing the TLV data to iterate.
[in] aHandler
A callback to invoke for the current TLV element being visited.
[in,out] aContext
An optional pointer to caller-provided context data.
Return Values
WEAVE_END_OF_TLV
On a successful iteration to the end of a TLV encoding, or to the end of a TLV container.
WEAVE_ERROR_INVALID_ARGUMENT
If aHandler is NULL.
The
last value returned by aHandler, if different than WEAVE_NO_ERROR

Iterate

WEAVE_ERROR Iterate(
  const TLVReader & aReader,
  IterateHandler aHandler,
  void *aContext,
  const bool aRecurse
)

Iterate through the TLV data referenced by aReader and invoke aHandler for each visited TLV element in the context of aContext.

The iteration is aborted if aHandler returns anything other than WEAVE_NO_ERROR

Details
Parameters
[in] aReader
A reference to the TLV reader containing the TLV data to iterate.
[in] aHandler
A callback to invoke for the current TLV element being visited.
[in,out] aContext
An optional pointer to caller-provided context data.
[in] aRecurse
A Boolean indicating whether (true) or not (false) any encountered arrays or structures should be descended into.
Return Values
WEAVE_END_OF_TLV
On a successful iteration to the end of a TLV encoding, or to the end of a TLV container.
WEAVE_ERROR_INVALID_ARGUMENT
If aHandler is NULL.
The
last value returned by aHandler, if different than WEAVE_NO_ERROR