Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

nl::Weave::Hồ sơ::Tệp tham chiếuTLVData

#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 cũ dữ liệu TLV.

Tóm tắt

Tính kế thừa

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

Hàm dựng và hàm phá hủy

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 đối tượng referencedTLVData, tức là không xác định đối tượng đó.
init(System::PacketBuffer *aBuffer)
Khởi tạo đối tượng referencedTLVData được cung cấp bằng PackageetBuffer.
init(MessageIterator & i)
Khởi tạo đối tượng referencedTLVData bằng cách sử dụng MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
Khởi tạo một referencedTLVObject trong một chuỗi byte.
init(TLVWriteCallback aWriteCallback, void *anAppState)
Khởi tạo đối tượngGiới thiệu về đối tượng dựa trên hàm callback.
isEmpty(void)
bool
Kiểm tra xem đối tượng referencedTLVData có chứa gì trong đó không.
isFree(void)
bool
Kiểm tra xem đối tượng referencedTLVData có phải là "free" không, tức là
operator==(const ReferencedTLVData &) const
bool
Kiểm tra đối tượng referencedTLVData so với đối tượng khác để xem có đẳng thức không.
pack(System::PacketBuffer *buff)
Đóng gói một đối tượng referencedTLVData trực tiếp vào một 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 bộ đệ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ừ MessageIterator đã cung cấp.

Loại công khai

Ghi đè lệnh gọi lại

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

Thuộc tính công khai

Dữ liệu

uint8_t * theData

Độ dài

uint16_t theLength

theLengthLength

uint16_t theMaxLength

Hàm công khai

Tham chiếu TLVData

 ReferencedTLVData(
  void
)

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

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

miễn phí

void free(
  void
)

Giải phóng đối tượng referencedTLVData, tức là không xác định đối tượng đó.

bắt đầu

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

Khởi tạo đối tượng referencedTLVData được cung cấp bằng PackageetBuffer.

Khởi tạo đối tượng referencedTLVData dựa trên bộ đệm có đầy đủ TLV. Điều này giả định rằng bộ đệm CHỈ chứa TLV.

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

bắt đầu

WEAVE_ERROR init(
  MessageIterator & i
)

Khởi tạo đối tượng referencedTLVData bằng cách sử dụng MessageIterator.

Khởi tạo đối tượng referencedTLVData bằng cách sử dụng MessageIterator. Trong trường hợp này, TLV là phần cuối cùng của bộ đệm và chúng ta chuyển một biến lặp thông báo trỏ đến bộ đệm đó.

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

bắt đầu

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

Khởi tạo một referencedTLVObject trong 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 khởi tạo mà chúng tôi sử dụng nếu không có PacketrBuffer vì chúng tôi đ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
Các thông số
[in] aLength
Độ dài cho dữ liệu TLV
[in] aMaxLength
Tổng chiều dài của bộ đệm
[in] aByteString
Con trỏ đến dữ liệu chuỗi
Giá trị trả về
WEAVE_NO_ERROR
Điều kiện vô điều kiện

bắt đầu

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

Khởi tạo đối tượngGiới thiệu về đối tượng dựa trên hàm callback.

Khởi tạo đố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à một đối tượng tham chiếu. Hàm này sẽ được chuyể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. 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 thông số
[in] aWriteCallback
hàm được gọi khi đến giờ viết một số TLV.
[in] anAppState
một đối tượng trạng thái ứng dụng cần được chuyển đến lệnh gọi lại cùng với tác giả.
Giá trị trả về
WEAVE_NO_ERROR
Thành công!
WEAVE_ERROR_INVALID_ARGUMENT
Nếu lệnh gọi lại ghi không được cung cấp.

is trống

bool isEmpty(
  void
)

Kiểm tra xem đối tượng referencedTLVData có chứa gì trong đó không.

Có hai cách để đối tượng như vậy có thể "have" một thứ gì đó. Thông số này có thể có độ dài là 0 HOẶC không thể 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ó 0 độ dài hoặc không có lệnh gọi lại ghi trong tay, false nếu không có lệnh ghi lại.

miễn phí

bool isFree(
  void
)

Kiểm tra xem đối tượng referencedTLVData có phải là "free" không, tức là

không xác định.

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

toán tử==

bool operator==(
  const ReferencedTLVData &
) const 

Kiểm tra đối tượng referencedTLVData so với đối tượng khác để xem có đẳng thức không.

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

Thông tin chi tiết
Các thông số
[in] Another
một đối tượng để kiểm tra
Giá trị trả về
true
Các vật thể 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 một đối tượng referencedTLVData trực tiếp vào một PacketBuffer.

Thông tin chi tiết
Các thông số
[in] buff
bộ đệm để lấp đầy.
Trả về
một WEAVE_ERROR phản ánh 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
)

LengthLength

uint16_t packedLength(
  void
)

Trả về độ dài dữ liệu giả định rằng đối tượng đã được đóng gói vào bộ đệ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 khỏi bộ đệm inet (giả sử đối tượng chỉ chứa TLV).

Thông tin chi tiết
Các thông số
[in] buff
bộ đệm để đọc.
[out] aTarget
đối tượng referencedTLVData để "fill" với kết quả.
Trả về
một WEAVE_ERROR phản ánh 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ừ MessageIterator đã cung cấp.

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

Lưu ý rằng không có "parsing&quot thực tế nào được thực hiện ở đây vì TLV vẫn còn trong bộ đệm và hoàn toàn không bị bóp méo. 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 thông số
[in] i
Biến lặp của thư được phân tích cú pháp.
[out] aTarget
Một nơi để đưa kết quả phân tích cú pháp vào.
Giá trị trả về
WEAVE_NO_ERROR
Điều kiện vô điều kiện