nl :: Dệt :: Hồ sơ :: 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 lược

Thực thể quản lý dữ liệu, khách hà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 chung của công cụ giao thức.

Di sản

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

Người xây dựng và Người phá hủy

ProtocolEngine (void)
~ProtocolEngine (void)

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

mBindingTable [kBindingTableSize]
Các ProtocolEngine có một bảng ràng buộc rằng, nếu động cơ sẽ chịu trách nhiệm về bất cứ điều gì ngoài đơn giản chỉ nhận được thông báo phát sóng, có lẽ cần phải chứa ít nhất một entry.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable [kTransactionTableSize]

Chức năng công cộng

BindConfirm ( Binding *aBinding)
virtual WEAVE_ERROR
Xử lý xác nhận rằng một yêu cầu ràng buộc đã được hoàn tất thành công.
BindConfirm ( Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Xử lý xác nhận rằng một yêu cầu ràng buộc đã 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 ID nút ngang hàng đã biết và mã định danh truyền tải.
BindRequest (const uint64_t & aPeerNodeId)
Liên kết với một đồng đẳng đã biết bằng cách sử dụng phương tiện truyền tải mặc định.
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest ( WeaveConnection *aConnection)
Yêu cầu ràng buộc bằng kết nối Weave đang hoạt động.
IncompleteIndication ( Binding *aBinding, StatusReport & aReport)
virtual void
Xử lý một dấu hiệu cho thấy rằng một liên kết không thành công.
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Xử lý một dấu hiệu cho thấy rằng một ràng buộc đã trở nên không 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 ràng buộc khỏi bảng ràng buộc.
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Yêu cầu hoàn tác và xóa một ràng buộc khỏi bảng ràng buộc.

Các chức năng đượ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)

Các lớp học

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

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

mBindingTable

Binding mBindingTable[kBindingTableSize]

Các ProtocolEngine có một bảng ràng buộc rằng, nếu động cơ sẽ chịu trách nhiệm về bất cứ điều gì ngoài đơn giản chỉ nhận được thông báo phát sóng, có lẽ cần phải chứa ít nhất một entry.

Các ràng buộc thường được lập chỉ mục bởi ID nút. Điều này có nghĩa là mỗi công cụ chỉ có thể có một ràng buộc duy nhất với một điểm cuối dịch vụ nhất định.

Đặc tả WDM có khái niệm "ràng buộc mặc định" này là thông báo địa điểm đi nếu không có đích rõ ràng nào được cung cấp. Điều này chủ yếu sẽ được sử dụng trong các thiết bị rất đơn giản với một ràng buộc duy nhất hoặc một số lượng nhỏ các ràng buộc và cho các mục đích khác, sẽ chỉ là ràng buộc đầu tiên được hình thành.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Chức năng công cộng

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

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

Khi một ràng buộc đã được hoàn thành, công cụ giao thức sẽ đi qua bảng giao dịch và bắt đầu bất kỳ giao dịch nào phụ thuộc vào ràng buộc đó.

Chi tiết
Thông số
[in] aBinding
Một con trỏ đến liên kết đã hoàn thành.
Lợi nhuận
WEAVE_NO_ERROR Mở thành công. Nếu không trả về một WEAVE_ERROR phản ánh một sự bất lực để bắt đầu một giao dịch.

BindConfirm

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

Xử lý xác nhận rằng một yêu cầu ràng buộc đã không thành công.

Khi một yêu cầu ràng buộc 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 bất kỳ giao dịch nào tùy thuộc vào ràng buộc.

Chi tiết
Thông số
[in] aBinding
Một con trỏ đến liên kết không thành công.
[in] aReport
Tham chiếu đến đối tượng StatusReport nêu chi tiết lý do thất bại.
Lợi nhuận

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 ID nút ngang hàng đã biết và mã định danh truyền tải.

Đưa ra một ID nút ngang hàng và một đặc tả truyền tải, yêu cầu này thiết lập một ràng buộc với máy ngang hàng đó. Việc đấu thầu sẽ yêu cầu hoàn thành bổ sung CHỈ nếu quá trình vận chuyển là TCP. Nếu một ràng buộc với ngang hàng đã có, nó sẽ được sử dụng lại.

Chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến ID nút 64-bit của thực thể ngang hàng là đích ràng buộc.
[in] aTransport
Các phương tiện giao thông để sử dụng.
Lợi nhuận
WEAVE_NO_ERROR về thành công hay WEAVE_ERROR_NO_MEMORY nếu bảng ràng buộc đầy. Nếu không trả về một WEAVE_ERROR phản ánh một sự thất bại để khởi tạo các ràng buộc.
Xem thêm:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Liên kết với một đồng đẳng đã biết bằng cách sử dụng phương tiện truyền tải mặc định.

Chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến ID nút 64-bit của thực thể ngang hàng là đích ràng buộc.
Lợi nhuận
WEAVE_NO_ERROR Mở thành công. Nếu không trả về một WEAVE_ERROR phản ánh sự thất bại của hoạt động ràng buộc.

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Yêu cầu ràng buộc bằng kết nối Weave đang hoạt động.

Một ràng buộc cũng có thể được thiết lập bằng cách sử dụng một kết nối hiện có và đang mở. Lưu ý rằng các ràng buộc được thiết lập theo cách này không cần phải hoàn thành thêm.

Chi tiết
Thông số
[in] aConnection
Một con trỏ tới một kết nối Weave sẽ được sử dụng bởi liên kết.
Lợi nhuận
WEAVE_NO_ERROR về thành công hay WEAVE_ERROR_NO_MEMORY nếu bảng ràng buộc đầy. Nếu không, trả về lỗi phản ánh lỗi không thể khởi tạo liên kết.

IncompleteIndication

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

Xử lý một dấu hiệu cho thấy rằng một liên kết không thành công.

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

Chi tiết
Thông số
[in] aBinding
Một con trỏ đến liên kết không thành công.
[in] aReport
Tham chiếu đến đối tượng StatusReport nêu chi tiết lý do thất bại.

IncompleteIndication

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

Xử lý một dấu hiệu cho thấy rằng một ràng buộc đã trở nên không 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 pháp này, phương pháp này chỉ đơn giản là chuyển ID ngang hàng cùng với báo cáo trạng thái. Trong thực tế, kể từ khi phương pháp này là khoảng trống ảo, bất kỳ DMClient hoặc DMPublisher lớp con phải cung cấp một thực hiện.

Chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến ID 64 bit của nút ngang hàng hoặc điểm cuối dịch vụ là mục tiêu của liên kết không thành công.
[in] aReport
Tham chiếu đến đối tượng StatusReport nêu chi tiết lý do thất bại.

Trong đó

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Trong đó

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 ràng buộc khỏi bảng ràng buộc.

Khi một ràng buộc là "không bị ràng buộc" thì bất kỳ giao dịch nào hiện đang phụ thuộc vào nó cũng phải bị loại bỏ. Phương pháp này tự động hoàn tất tất cả các giao dịch với ràng buộc này.

Chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến ID nút 64 bit hoặc điểm cuối dịch vụ xác định ràng buộc.
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 ràng buộc khỏi bảng ràng buộc.

Khi một ràng buộc là "không bị ràng buộc" thì bất kỳ giao dịch nào hiện đang phụ thuộc vào nó cũng phải bị loại bỏ. Phương pháp này tự động hoàn tất tất cả các giao dịch với ràng buộc này.

Chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến ID nút 64 bit hoặc điểm cuối dịch vụ xác định ràng buộc.
[in] aErr
WEAVE_NO_ERROR nếu không có lý do cụ thể nào cho yêu cầu hủy liên kết này, nếu không nguyên nhân lỗi sẽ được chuyển sang.
Xem thêm:
UnbindRequest (const uint64_t)

~ ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Các chức năng được bảo vệ

Thông thoáng

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
)

Các giao dịch thất bại

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

Hoàn thiện

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

FinalizeTrans Giao dịch

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
)