nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine

Đây là lớp trừu tượng.

#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>

Lớp công cụ giao thức WDM.

Tóm tắt

Pháp nhân quản lý dữ liệu, ứng dụng hoặc nhà xuất bản có thành phần công cụ giao thức và thành phần trình quản lý dữ liệu. Lớp trừu tượng này đại diện cho các tính năng phổ biến của công cụ giao thức.

Tính kế thừa

Lớp con đã biết trực tiếp:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

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

ProtocolEngine(void)
~ProtocolEngine(void)

Thuộc tính được bảo vệ

mBindingTable[kBindingTableSize]
ProtocolEngine có một bảng liên kết. Nếu công cụ chịu trách nhiệm về mọi việc ngoài việc nhận thông báo phát đi, thì có thể cần chứa ít nhất một mục nhập.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

Hàm công khai

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
Xử lý xác nhận rằng một yêu cầu liên kết đã hoàn tất thành công.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Xử lý xác nhận rằng yêu cầu liên kết không thành công.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
Yêu cầu liên kết bằng cách sử dụng mã nhận dạng nút ngang hàng đã biết và thông số truyền tải.
BindRequest(const uint64_t & aPeerNodeId)
Liên kết với một ứng dụng ngang hàng đã biết bằng mạng truyền tải mặc định.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
Yêu cầu liên kết bằng cách sử dụng kết nối Weave đang hoạt động.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Xử lý chỉ báo cho biết liên kết không thành công.
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Xử lý chỉ báo cho biết mối liên kết chưa hoàn chỉnh.
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.

Hàm được bảo vệ

Clear(void)
void
ClearBindingTable(void)
void
ClearTransactionTable(void)
void
DequeueTransaction(DMTransaction *aTransaction)
void
EnqueueTransaction(DMTransaction *aTransaction, Binding *aBinding)
EnqueueTransaction(DMTransaction *aTransaction)
FailTransactions(Binding *aBinding, StatusReport & aReport)
bool
Finalize(void)
virtual void
FinalizeBindingTable(void)
void
FinalizeTransactionTable(void)
void
FinalizeTransactions(Binding *aBinding)
void
FromExchangeCtx(ExchangeContext *aExchangeCtx)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

Lớp

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

Thuộc tính được bảo vệ

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine có một bảng liên kết. Nếu công cụ chịu trách nhiệm về mọi việc ngoài việc nhận thông báo phát đi, thì có thể cần chứa ít nhất một mục nhập.

Các liên kết thường được lập chỉ mục theo mã nhận dạng nút. Tức là mỗi công cụ chỉ có thể có một liên kết với một điểm cuối của dịch vụ nhất định.

Thông số kỹ thuật WDM có khái niệm "liên kết mặc định", tức là thông báo vị trí sẽ được gửi đi nếu không có đích rõ ràng nào được cung cấp. Loại này chủ yếu sẽ được dùng trong các thiết bị rất đơn giản, chỉ có một liên kết duy nhất hoặc một số ít liên kết, vì các mục đích khác, đây sẽ chỉ là liên kết đầu tiên được tạo.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Hàm công khai

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Xử lý xác nhận rằng một yêu cầu liên kết đã hoàn tất thành công.

Sau khi liên kết xong, công cụ giao thức sẽ chuyển sang bảng giao dịch và bắt đầu mọi giao dịch phụ thuộc vào liên kết đó.

Thông tin chi tiết
Thông số
[in] aBinding
Con trỏ đến liên kết đã hoàn tất.
Trả về
WEAVE_NO_ERROR Khi thành công. Nếu không, hãy trả về WEAVE_ERROR cho biết rằng không thể bắt đầu giao dịch.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

Xử lý xác nhận rằng yêu cầu liên kết không thành công.

Khi yêu cầu liên kết không thành công, công cụ giao thức phải đi qua bảng giao dịch và không thực hiện được giao dịch nào phụ thuộc vào liên kết.

Thông tin chi tiết
Thông số
[in] aBinding
Con trỏ đến liên kết không thành công.
[in] aReport
Tham chiếu đến đối tượng StatusReport (Báo cáo trạng thái) nêu chi tiết lý do không thành công.
Trả về

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Yêu cầu liên kết bằng cách sử dụng mã nhận dạng nút ngang hàng đã biết và thông số truyền tải.

Khi có một mã nút ngang hàng và thông số truyền tải, yêu cầu này sẽ thiết lập một liên kết với ứng dụng ngang hàng đó. Việc đặt giá thầu CHỈ yêu cầu hoàn tất bổ sung nếu truyền tải là TCP. Nếu đã có liên kết với ứng dụng ngang hàng, thì liên kết đó sẽ được sử dụng lại.

Thông tin chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến mã nhận dạng nút 64 bit của thực thể ngang hàng là mục tiêu liên kết.
[in] aTransport
Phương tiện di chuyển cần sử dụng.
Trả về
WEAVE_NO_ERROR khi thành công hoặc WEAVE_ERROR_NO_MEMORY nếu bảng liên kết đầy. Nếu không, hãy trả về WEAVE_ERROR cho biết không thể khởi tạo liên kết.
Xem thêm:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Liên kết với một ứng dụng ngang hàng đã biết bằng mạng truyền tải mặc định.

Thông tin chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến mã nhận dạng nút 64 bit của thực thể ngang hàng là mục tiêu liên kết.
Trả về
WEAVE_NO_ERROR Khi thành công. Nếu không, hãy trả về WEAVE_ERROR cho biết hoạt động liên kết không thành công.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Yêu cầu liên kết bằng cách sử dụng kết nối Weave đang hoạt động.

Liên kết cũng có thể được thiết lập bằng kết nối hiện có và đang mở. Xin lưu ý rằng các liên kết được thiết lập theo cách này không yêu cầu hoàn tất bổ sung.

Thông tin chi tiết
Thông số
[in] aConnection
Con trỏ đến kết nối Dệt được liên kết sử dụng.
Trả về
WEAVE_NO_ERROR khi thành công hoặc WEAVE_ERROR_NO_MEMORY nếu bảng liên kết đầy. Nếu không, hãy trả về lỗi cho biết không khởi tạo được liên kết.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

Xử lý chỉ báo cho biết liên kết không thành công.

Khi liên kết trở thành chưa hoàn chỉnh, tức là khi kết nối bị đóng đối với liên kết TCP, công cụ giao thức phải thực hiện không thành công bất kỳ giao dịch nào phụ thuộc vào liên kết đó, bao gồm cả việc gọi trình xử lý trạng thái. Ngoài ra, chỉ báo không đầy đủ sẽ được truyền đến mọi đối tượng lớp cao cấp triển khai dạng thay thế của phương thức này mà nhận mã nhận dạng ngang hàng.

Thông tin chi tiết
Thông số
[in] aBinding
Con trỏ đến liên kết không thành công.
[in] aReport
Tham chiếu đến đối tượng StatusReport (Báo cáo trạng thái) nêu chi tiết lý do không thành công.

IncompleteIndication

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

Xử lý chỉ báo cho biết mối liên kết chưa hoàn chỉnh.

Các lớp cao hơn muốn được thông báo về lỗi liên kết nên sử dụng phương thức này. Phương thức này chỉ chuyển mã nhận dạng ứng dụng ngang hàng cùng với báo cáo trạng thái. Trên thực tế, vì phương thức này không có giá trị ảo, nên mọi lớp con DMClient hoặc DMPublisher đều phải cung cấp phương thức triển khai.

Thông tin chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến mã nhận dạng 64 bit của nút ngang hàng hoặc điểm cuối của dịch vụ là đích của liên kết không thành công.
[in] aReport
Tham chiếu đến đối tượng StatusReport (Báo cáo trạng thái) nêu chi tiết lý do không thành công.

Bắt đầu

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Bắt đầu

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.

Khi mối liên kết "không bị ràng buộc", mọi giao dịch hiện đang phụ thuộc vào mối liên kết đó cũng nên bị xoá. Phương thức này sẽ tự động hoàn thành tất cả giao dịch với mối liên kết này.

Thông tin chi tiết
Thông số
[in] aPeerNodeId
Mã tham chiếu đến mã nhận dạng nút 64 bit hoặc điểm cuối của dịch vụ giúp xác định liên kết.
Xem thêm:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.

Khi mối liên kết "không bị ràng buộc", mọi giao dịch hiện đang phụ thuộc vào mối liên kết đó cũng nên bị xoá. Phương thức này sẽ tự động hoàn thành tất cả giao dịch với mối liên kết này.

Thông tin chi tiết
Thông số
[in] aPeerNodeId
Mã tham chiếu đến mã nhận dạng nút 64 bit hoặc điểm cuối của dịch vụ giúp xác định liên kết.
[in] aErr
WEAVE_NO_ERROR nếu không có lý do cụ thể nào cho yêu cầu huỷ liên kết này, nếu không thì nguyên nhân gây ra lỗi sẽ được chuyển xuống.
Xem thêm:
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Hàm được bảo vệ

Xoá

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

ClearTransactionTable

void ClearTransactionTable(
  void
)

DequeueTransaction

void DequeueTransaction(
  DMTransaction *aTransaction
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

FailTransactions

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

Hoàn tất

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

FinalizeTransactions

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NewBinding

Binding * NewBinding(
  void
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)