nl::Weave::Profiles::ReferencedTLVData

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

Tương tự, chúng ta cần có khả năng trình bày một blob dữ liệu TLV lớn.

Tóm tắt

Tính kế thừa

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

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

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

Loại công khai

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

Các 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à không xác định đối tượng đó.
init(System::PacketBuffer *aBuffer)
Khởi động đối tượng ReferencedTLVData cho sẵn một PacketBuffer.
init(MessageIterator & i)
Khởi động đối tượng ReferencedTLVData cho sẵn MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Khởi động ReferencedTLVObject dựa trên một chuỗi byte.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Khởi tạo đối tượng ReferenceerencedTLVData cho một hàm callback.
isEmpty(void)
bool
Kiểm tra xem đối tượng ReferencedTLVData có chứa nội dung gì không.
isFree(void)
bool
Kiểm tra xem một đối tượng ReferencedTLVData có phải là "miễn phí" hay không, tức là
operator==(const ReferencedTLVData &) const
bool
Kiểm tra đối tượng ReferencedTLVData với đối tượng khác để xem đối tượng có tính bằng nhau.
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 với giả định đối tượng đã được đóng gói vào 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ừ một PacketBuffer đã cung cấp.
parse(MessageIterator & i, ReferencedTLVData & aTarget)
Phân tích cú pháp đối tượng ReferencedTLVData từ một MessageIterator được cung cấp.

Loại công khai

TLVWriteCallback

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

Các 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 cho dữ liệu TLV --------------

Hàm khởi tạo không có đối số cho dữ liệu TLV. Phân phối một đối tượng tự do/chưa khởi tạo. Đối tượng này 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à không xác định đối tượng đó.

khởi tạo

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Khởi động đối tượng ReferencedTLVData cho sẵn một PacketBuffer.

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

Thông tin chi tiết
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

khởi tạo

WEAVE_ERROR init(
  MessageIterator & i
)

Khởi động đối tượng ReferencedTLVData cho sẵn MessageIterator.

Khởi động đối tượng ReferencedTLVData cho sẵ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
Tham số
[in] i
Một trình lặp thông báo trỏ đến TLV cần trích xuất.
Giá trị trả về
WEAVE_NO_ERROR
Vô điều kiện

khởi tạo

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

Khởi tạo ReferencedTLVObject dựa trên một chuỗi byte.

Khởi động đố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 do chúng ta đang tạo một trong những trình khởi tạo này để đóng gói và gửi.

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

khởi tạo

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Khởi tạo đối tượng ReferenceerencedTLVData cho một hàm callback.

Khởi động một đố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. Các đối tượng này sẽ được truyền vào đó cùng với đối tượng TLVWriter, khi dữ liệu được tham chiếu được đóng gói và gửi đ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
Tham số
[in] aWriteCallback
hàm sẽ được gọi khi đến lúc viết TLV nào đó.
[in] anAppState
đố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.

Trống

bool isEmpty(
  void
)

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

Có hai cách khả thi để một đối tượng đó có thể "có" một điều gì đó. Hoặc 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 ghi trong tay, nếu không thì sẽ là false.

isFree

bool isFree(
  void
)

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

chưa xác định.

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

toán tử==

bool operator==(
  const ReferencedTLVData &
) const 

Kiểm tra đối tượng ReferencedTLVData với đối tượng khác để xem đối tượng có tính bằng nhau.

Lưu ý rằng điều này chỉ thực sự hợp lý 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
Tham số
[in] Another
đối tượng cần kiểm tra lại
Giá trị trả về
true
Các đối tượng 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
Tham số
[in] buff
vùng đệm cần lấp đầy.
Trả về
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 với giả định đối tượng đã được đóng gói vào 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

phân tích cú pháp

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

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

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

Thông tin chi tiết
Tham số
[in] buff
vùng đệm cần đọc.
[out] aTarget
đối tượng ReferencedTLVData để "fill" với kết quả.
Trả về
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.

phân tích cú pháp

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

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

Phân tích cú pháp đối tượng ReferenceTLVData từ mộ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ó hoạt động "phân tích cú pháp" thực tế được thực hiện ở đây vì TLV nằm trong vùng đệm và không hề bị thao tác. 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
Tham số
[in] i
Một biến lặp trên thông báo đang đượ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