nl::Weave::Profiles::ReferencedTLVData

#include <src/lib/profiles/common/WeaveMessage.h>

Tương tự, chúng ta cần có khả năng đại diện cho một blob lớn dữ liệu TLV.

Tóm tắt

Tính kế thừa

Kế thừa từ: nl::Weave::Profiles::RetainedPacketBuffer

Hàm khởi tạo và hàm phá

ReferencedTLVData(void)
-------------- định nghĩa về dữ liệu TLV --------------

Loại công khai

TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState) typedef
void(*

Thuộc tính công khai

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

Hàm công khai

free(void)
void
Giải phóng một đối tượng ReferencedTLVData, tức là chưa xác định đối tượng này.
init(System::PacketBuffer *aBuffer)
Khởi động đối tượng ReferencedTLVData dựa trên một Gói đệm.
init(MessageIterator & i)
Khởi động một đối tượng ReferencedTLVData dựa trên MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Khởi động ReferencedTLVObject khi có một chuỗi byte.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Khởi động đối tượng ReferenceerencedTLVData khi có một hàm callback.
isEmpty(void)
bool
Kiểm tra xem đối tượng ReferencedTLVData có chứa nội dung nào trong đó hay không.
isFree(void)
bool
Kiểm tra xem đối tượng ReferencedTLVData có "miễn phí" hay không
operator==(const ReferencedTLVData &) const
bool
Kiểm tra đối tượng ReferencedTLVData so với đối tượng khác để biết sự cân bằng.
pack(System::PacketBuffer *buff)
Đóng gói trực tiếp một đối tượng ReferencedTLVData vào PacketBuffer.
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
Trả về độ dài dữ liệu giả định rằng đối tượng đã được đóng gói vào một vùng đệm.

Hàm tĩnh công khai

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
Phân tích cú pháp đối tượng ReferencedTLVData từ PacketBuffer đã cung cấp.
parse(MessageIterator & i, ReferencedTLVData & aTarget)
Phân tích cú pháp đối tượng ReferencedTLVData từ MessageIterator đã cung cấp.

Loại công khai

TLVWriteCallback

void(* TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState)

Thuộc tính công khai

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

Hàm công khai

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- định nghĩa về dữ liệu TLV --------------

Hàm khởi tạo không có đối số cho dữ liệu TLV. Phân phối đối tượng miễn phí/chưa khởi tạo mà phải tuân theo một trong các phương thức init() được xác định ở đây để trở nên hữu ích.

miễn phí

void free(
  void
)

Giải phóng một đối tượng ReferencedTLVData, tức là chưa xác định đối tượng này.

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Khởi động đối tượng ReferencedTLVData dựa trên một Gói đệm.

Khởi động một đối tượng ReferencedTLVData khi có vùng đệm chứa đầy TLV. Điều này giả định rằng vùng đệm CHỈ chứa TLV.

Thông tin chi tiết
Các tham số
[in] aBuffer
Vùng đệm thông báo chứa TLV.
Giá trị trả về
WEAVE_NO_ERROR
Vô điều kiện

init

WEAVE_ERROR init(
  MessageIterator & i
)

Khởi động một đối tượng ReferencedTLVData dựa trên MessageIterator.

Khởi động một đối tượng ReferencedTLVData dựa trên MessageIterator. Trong trường hợp này, TLV là phần cuối cùng của vùng đệm và chúng ta truyền một trình lặp thông báo trỏ đến vùng đệm đó.

Thông tin chi tiết
Các tham số
[in] i
Một trình lặp thông báo trỏ đến TLV cần được trích xuất.
Giá trị trả về
WEAVE_NO_ERROR
Vô điều kiện

init

WEAVE_ERROR init(
  uint16_t aLength,
  uint16_t aMaxLength,
  uint8_t *aByteString
)

Khởi động ReferencedTLVObject khi có một chuỗi byte.

Khởi tạo đối tượng ReferencedTLVData bằng một chuỗi byte chứa TLV. Trình khởi tạo này là trình chúng tôi sử dụng nếu không có PacketrBuffer vì chúng ta sẽ tạo một trong số các trình khởi tạo này để đóng gói và gửi.

Thông tin chi tiết
Các tham số
[in] aLength
Độ dài của dữ liệu TLV
[in] aMaxLength
Tổng chiều dài của vùng đệm
[in] aByteString
Con trỏ đến dữ liệu chuỗi
Giá trị trả về
WEAVE_NO_ERROR
Vô điều kiện

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Khởi động đối tượng ReferenceerencedTLVData khi có một hàm callback.

Khởi động đối tượng ReferencedTLVData. Thay vì cung cấp dữ liệu rõ ràng, phiên bản này cung cấp hàm, lệnh gọi lại ghi và đối tượng tham chiếu sẽ được truyền vào đó, cùng với đối tượng TLVWriter, khi dữ liệu tham chiếu được cho là được đóng gói và gửi. Chữ ký của lệnh gọi lại đó là:

typedef void (*TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState);

Thông tin chi tiết
Các tham số
[in] aWriteCallback
hàm được gọi khi đến lúc viết một số TLV.
[in] anAppState
một đối tượng trạng thái ứng dụng sẽ được truyền đến lệnh gọi lại cùng với trình ghi.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu lệnh gọi lại ghi không được cung cấp.

isEmpty

bool isEmpty(
  void
)

Kiểm tra xem đối tượng ReferencedTLVData có chứa nội dung nào trong đó hay không.

Một đối tượng như vậy có thể "có" nội dung nào đó theo hai cách. Mã này có thể có độ dài bằng 0 HOẶC không có lệnh gọi lại ghi.

Thông tin chi tiết
Trả về
true nếu tập dữ liệu có độ dài bằng 0 hoặc không có lệnh gọi lại nào trong quá trình ghi, nếu không thì là false.

isFree

bool isFree(
  void
)

Kiểm tra xem đối tượng ReferencedTLVData có "miễn phí" hay không

không xác định.

Thông tin chi tiết
Trả về
true nếu đối tượng là không xác định, nếu không thì là false.

toán tử==

bool operator==(
  const ReferencedTLVData &
) const 

Kiểm tra đối tượng ReferencedTLVData so với đối tượng khác để biết sự cân bằng.

Lưu ý rằng điều này chỉ thực sự có ý nghĩa trong trường hợp 2 đối tượng có dữ liệu thực tế trong đó được hỗ trợ bởi một vùng đệm hoặc chuỗi.

Thông tin chi tiết
Các tham số
[in] Another
một đối tượng để kiểm tra
Giá trị trả về
true
Các đối tượng đều bằng nhau.
false
Các chuỗi đối tượng không bằng nhau.

gói

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

Đóng gói trực tiếp một đối tượng ReferencedTLVData vào PacketBuffer.

Thông tin chi tiết
Các tham số
[in] buff
vùng đệm cần lấp đầy.
Trả về
một WEAVE_ERROR phản ánh sự thành công của lệnh gọi gói cơ bản.

gói

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

Trả về độ dài dữ liệu giả định rằng đối tượng đã được đóng gói vào một vùng đệm.

Thông tin chi tiết
Trả về
độ dài số nguyên của dữ liệu được đóng gói.

Hàm tĩnh công khai

parse

WEAVE_ERROR parse(
  System::PacketBuffer *buff,
  ReferencedTLVData & aTarget
)

Phân tích cú pháp đối tượng ReferencedTLVData từ PacketBuffer đã cung cấp.

Phân tích cú pháp đối tượng ReferencedTLVData trong vùng đệm inet (giả sử đối tượng này chỉ chứa TLV).

Thông tin chi tiết
Các tham số
[in] buff
vùng đệm cần đọc.
[out] aTarget
một đối tượng ReferencedTLVData để "điền" kết quả.
Trả về
một WEAVE_ERROR phản ánh sự thành công của lệnh gọi phân tích cú pháp cơ bản.

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

Phân tích cú pháp đối tượng ReferencedTLVData từ MessageIterator đã cung cấp.

Phân tích cú pháp đối tượng ReferenceTLVData từ đối tượng MessageIterator được giả định là trỏ đến phần TLV của thông báo.

Lưu ý rằng không có thao tác "phân tích cú pháp" thực tế nào được thực hiện ở đây vì TLV được để lại trong vùng đệm và hoàn toàn không bị chỉnh sửa. Phương thức này chủ yếu chỉ thiết lập cấu trúc ReferencedTLVData để sử dụng sau này.

Thông tin chi tiết
Các tham số
[in] i
Một trình lặp trên thông báo được phân tích cú pháp.
[out] aTarget
Nơi đặt kết quả phân tích cú pháp.
Giá trị trả về
WEAVE_NO_ERROR
Vô điều kiện