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

Đây là một 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 học 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à phá huỷ

ProtocolEngine(void)
~ProtocolEngine(void)

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

mBindingTable[kBindingTableSize]
ProtocolEngine có một bảng liên kết mà nếu công cụ chịu trách nhiệm cho mọi việc ngoài việc nhận thông báo truyền tin, thì có thể cần phải chứa ít nhất một mục.
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 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ý thông báo 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ã 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 phương thức 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 một kết nối Weave đang hoạt động.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Xử lý chỉ báo cho biết không liên kết được.
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Xử lý chỉ báo cho biết một liên kết đã trở nên 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 hoàn tác và xóa một 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 hoàn tác và xóa một 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 mà nếu công cụ chịu trách nhiệm cho mọi việc ngoài việc nhận thông báo truyền tin, thì có thể cần phải chứa ít nhất một mục.

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

Thông số WDM có khái niệm "liên kết mặc định" đây là địa điểm mà thông báo sẽ đến nếu không có điểm đến rõ ràng nào được cung cấp. Đối tượng này chủ yếu sẽ được sử 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. Đối với 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 yêu cầu liên kết đã hoàn tất thành công.

Sau khi hoàn tất liên kết, công cụ giao thức sẽ duyệt qua 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
Tham số
[in] aBinding
Con trỏ 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ề mã WEAVE_ERROR cho biết việc không thể bắt đầu giao dịch.

BindConfirm

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

Xử lý thông báo 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 truy cập vào bảng giao dịch và không thực hiện được bất kỳ giao dịch nào tuỳ thuộc vào mối liên kết.

Thông tin chi tiết
Tham số
[in] aBinding
Con trỏ đến liên kết không thành công.
[in] aReport
Thông tin tham chiếu đến đối tượng StatusReport 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ã 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 mối liên kết với nút ngang hàng đó. Việc đặt giá thầu sẽ CHỈ yêu cầu hoàn thành 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 này sẽ được sử dụng lại.

Thông tin chi tiết
Tham 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à đích liên kết.
[in] aTransport
Phương tiện vận chuyể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ề một WEAVE_ERROR để phản ánh lỗi không khởi chạy 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 phương thức truyền tải mặc định.

Thông tin chi tiết
Tham 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à đích liên kết.
Trả về
WEAVE_NO_ERROR Khi thành công. Nếu không, hãy trả về một WEAVE_ERROR để phản ánh lỗi của thao tác liên kết.

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 một kết nối Weave đang hoạt động.

Bạn cũng có thể thiết lập liên kết bằng một kết nối hiện có và 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 thêm.

Thông tin chi tiết
Tham số
[in] aConnection
Con trỏ đến một kết nối Weave sẽ đượ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 phản ánh lỗi không khởi động được liên kết.

IncompleteIndication

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

Xử lý chỉ báo cho biết không liên kết được.

Khi một liên kết không hoàn chỉnh, tức là khi kết nối bị đóng vì một liên kết TCP, công cụ giao thức phải không thực hiện được 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 đủ được chuyển tới bất kỳ đối tượng lớp cấp cao nào triển khai hình thức thay thế của phương thức này mà lấy mã ứng dụng ngang hàng.

Thông tin chi tiết
Tham số
[in] aBinding
Con trỏ đến liên kết không thành công.
[in] aReport
Thông tin tham chiếu đến đối tượng StatusReport 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ột liên kết đã trở nên chưa hoàn chỉnh.

Các lớp cao hơn muốn nhận 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ã 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 là khoảng trống ảo, nên mọi lớp con DMClient hoặc DMPublisher đều phải cung cấp một phương thức triển khai.

Thông tin chi tiết
Tham 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 dịch vụ chính là mục tiêu của liên kết không thành công.
[in] aReport
Thông tin tham chiếu đến đối tượng StatusReport nêu chi tiết lý do không thành công.

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Yêu cầu hoàn tác và xóa một liên kết khỏi bảng liên kết.

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

Thông tin chi tiết
Tham số
[in] aPeerNodeId
Thông tin tham chiếu đến mã nhận dạng nút 64 bit hoặc điểm cuối của dịch vụ xác định mối 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 hoàn tác và xóa một liên kết khỏi bảng liên kết.

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

Thông tin chi tiết
Tham số
[in] aPeerNodeId
Thông tin tham chiếu đến mã nhận dạng nút 64 bit hoặc điểm cuối của dịch vụ xác định mối liên kết.
[in] aErr
WEAVE_NO_ERROR nếu không có lý do cụ thể cho yêu cầu huỷ liên kết này, nếu không, nguyên nhân 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ệ

Xóa

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
)