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

ชั้นเรียนนี้เป็นชั้นนามธรรม

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

คลาสเครื่องมือโปรโตคอล WDM

สรุป

เอนทิตีการจัดการข้อมูล ลูกค้า หรือผู้เผยแพร่ มีคอมโพเนนต์โปรโตคอลเครื่องมือและคอมโพเนนต์เครื่องมือจัดการข้อมูล คลาสนามธรรมนี้แสดงถึงคุณลักษณะทั่วไปของเครื่องมือโปรโตคอล

การสืบทอด

คลาสย่อยที่รู้จักโดยตรง:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

ผู้ผลิตและผู้ทำลาย

ProtocolEngine(void)
~ProtocolEngine(void)

แอตทริบิวต์ที่มีการป้องกัน

mBindingTable[kBindingTableSize]
ProtocolEngine มีตารางการเชื่อมโยงที่หากเครื่องมือค้นหาจะรับผิดชอบสิ่งใดก็ตามที่นอกเหนือจากการรับการแจ้งเตือนการกระจายข้อมูล อาจต้องมีอย่างน้อย 1 รายการ
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

ฟังก์ชันสาธารณะ

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
จัดการการยืนยันว่าคำขอเชื่อมโยงเสร็จสมบูรณ์แล้ว
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
จัดการการยืนยันว่าคำขอเชื่อมโยงล้มเหลว
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
ขอการเชื่อมโยงโดยใช้รหัสโหนดเพียร์ที่ทราบและตัวระบุการส่ง
BindRequest(const uint64_t & aPeerNodeId)
เชื่อมโยงกับแอปเทียบเท่าที่รู้จักโดยใช้การรับส่งเริ่มต้น
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
ขอการเชื่อมโยงโดยใช้การเชื่อมต่อ Weave ที่ใช้งานอยู่
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
จัดการสิ่งที่ระบุว่าการเชื่อมโยงไม่สำเร็จ
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
จัดการกับตัวบ่งชี้ว่าการเชื่อมโยงไม่สมบูรณ์
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
ขอให้ยกเลิกการเชื่อมโยงและนำออกจากตารางการเชื่อมโยง
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
ขอให้ยกเลิกการเชื่อมโยงและนำออกจากตารางการเชื่อมโยง

ฟังก์ชันที่มีการป้องกัน

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)

ชั้นเรียน

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

แอตทริบิวต์ที่มีการป้องกัน

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine มีตารางการเชื่อมโยงที่หากเครื่องมือค้นหาจะรับผิดชอบสิ่งใดก็ตามที่นอกเหนือจากการรับการแจ้งเตือนการกระจายข้อมูล อาจต้องมีอย่างน้อย 1 รายการ

โดยทั่วไปการเชื่อมโยงจะจัดทำดัชนีตามรหัสโหนด ซึ่งหมายความว่าแต่ละเครื่องมือจะมีการเชื่อมโยงได้เพียงรายการเดียวกับปลายทางบริการที่ระบุ

ข้อกำหนด WDM มีข้อความว่า "การเชื่อมโยงเริ่มต้น" ซึ่งเป็นตำแหน่งที่จะนำข้อความไปใช้หากไม่ได้ระบุปลายทางอย่างชัดเจน ซึ่งส่วนใหญ่จะใช้ในอุปกรณ์ง่ายๆ ที่มีการเชื่อมโยงครั้งเดียวหรือจำนวนการเชื่อมโยงน้อย และสำหรับวัตถุประสงค์อื่นๆ ก็จะเป็นเพียงการเชื่อมโยงแรกเท่านั้น

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

ฟังก์ชันสาธารณะ

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

จัดการการยืนยันว่าคำขอเชื่อมโยงเสร็จสมบูรณ์แล้ว

เมื่อการเชื่อมโยงเสร็จสมบูรณ์แล้ว เครื่องมือโปรโตคอลจะไปที่ตารางธุรกรรมและเริ่มธุรกรรมใดๆ ที่อาศัยการเชื่อมโยงนั้น

รายละเอียด
พารามิเตอร์
[in] aBinding
ตัวชี้ไปยังการเชื่อมโยงที่เสร็จสมบูรณ์
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จแล้ว ไม่เช่นนั้น ให้แสดงผล WEAVE_ERROR ซึ่งแสดงให้เห็นว่าไม่สามารถเริ่มธุรกรรมได้

BindConfirm

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

จัดการการยืนยันว่าคำขอเชื่อมโยงล้มเหลว

เมื่อคำขอการเชื่อมโยงไม่สำเร็จ เครื่องมือโปรโตคอลจะต้องผ่านตารางธุรกรรมและดำเนินการธุรกรรมไม่สำเร็จโดยขึ้นอยู่กับการเชื่อมโยง

รายละเอียด
พารามิเตอร์
[in] aBinding
ตัวชี้ไปยังการเชื่อมโยงที่ล้มเหลว
[in] aReport
การอ้างอิงออบเจ็กต์ StatusReport ที่อธิบายสาเหตุของความล้มเหลว
การคืนสินค้า

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

ขอการเชื่อมโยงโดยใช้รหัสโหนดเพียร์ที่ทราบและตัวระบุการส่ง

เมื่อกำหนดรหัสโหนดเพียร์และข้อกำหนดการรับส่งข้อมูล คำขอนี้จะตั้งค่าการเชื่อมโยงกับเพียร์ดังกล่าว การเสนอราคาจะต้องดำเนินการเพิ่มเติมให้เสร็จสมบูรณ์เฉพาะในกรณีที่การส่งเป็นแบบ TCP หากมีการเชื่อมโยงกับแอปเทียบเท่าอยู่แล้ว การเชื่อมโยงดังกล่าวจะใช้ซ้ำ

รายละเอียด
พารามิเตอร์
[in] aPeerNodeId
การอ้างอิงรหัสโหนด 64 บิตของเอนทิตีเพียร์ที่เป็นเป้าหมายการเชื่อมโยง
[in] aTransport
การขนส่งที่จะใช้
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จหรือ WEAVE_ERROR_NO_MEMORY หากตารางการเชื่อมโยงเต็ม หรือแสดงผล WEAVE_ERROR เพื่อแสดงถึงความล้มเหลวในการเริ่มการเชื่อมโยง
ดูเพิ่มเติม
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

เชื่อมโยงกับแอปเทียบเท่าที่รู้จักโดยใช้การรับส่งเริ่มต้น

รายละเอียด
พารามิเตอร์
[in] aPeerNodeId
การอ้างอิงรหัสโหนด 64 บิตของเอนทิตีเพียร์ที่เป็นเป้าหมายการเชื่อมโยง
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จแล้ว หรือแสดงผล WEAVE_ERROR เพื่อแสดงถึงความล้มเหลวของการดำเนินการเชื่อมโยง

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

ขอการเชื่อมโยงโดยใช้การเชื่อมต่อ Weave ที่ใช้งานอยู่

การเชื่อมโยงอาจสร้างขึ้นโดยใช้การเชื่อมต่อที่มีอยู่และแบบเปิด โปรดทราบว่าการเชื่อมโยงที่เกิดขึ้นในลักษณะนี้ไม่จำเป็นต้องมีการดำเนินการเพิ่มเติมใดๆ เพิ่มเติม

รายละเอียด
พารามิเตอร์
[in] aConnection
ตัวชี้ไปยังการเชื่อมต่อ Weave ที่จะใช้ในการเชื่อมโยง
การคืนสินค้า
WEAVE_NO_ERROR สำเร็จหรือ WEAVE_ERROR_NO_MEMORY หากตารางการเชื่อมโยงเต็ม มิฉะนั้น ระบบจะแสดงผลข้อผิดพลาดที่แสดงถึงความล้มเหลวในการเริ่มการเชื่อมโยง

IncompleteIndication

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

จัดการสิ่งที่ระบุว่าการเชื่อมโยงไม่สำเร็จ

เมื่อการเชื่อมโยงไม่สมบูรณ์ กล่าวคือ เมื่อปิดการเชื่อมต่อสำหรับการเชื่อมโยง TCP เครื่องมือโปรโตคอลต้องไม่ทำธุรกรรมใดๆ ที่อาศัยการเชื่อมต่อนี้ ซึ่งรวมถึงการเรียกใช้เครื่องจัดการสถานะ นอกจากนี้ ระบบจะส่งตัวบ่งชี้ที่ไม่สมบูรณ์ไปยังออบเจ็กต์ Superclass ที่ใช้รูปแบบอื่นของเมธอดนี้ซึ่งมีรหัสเพียร์

รายละเอียด
พารามิเตอร์
[in] aBinding
ตัวชี้ไปยังการเชื่อมโยงที่ล้มเหลว
[in] aReport
การอ้างอิงออบเจ็กต์ StatusReport ที่อธิบายสาเหตุของความล้มเหลว

IncompleteIndication

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

จัดการกับตัวบ่งชี้ว่าการเชื่อมโยงไม่สมบูรณ์

เลเยอร์ระดับสูงที่ต้องการรับการแจ้งเตือนเกี่ยวกับความล้มเหลวในการเชื่อมโยงควรใช้วิธีนี้ ซึ่งจะเพียงแค่ส่งรหัสเพียร์ไปพร้อมกับรายงานสถานะ เนื่องจากวิธีการนี้ถือเป็นโมฆะเสมือนจริง คลาสย่อย DMClient หรือ DMPublisher จึงต้องติดตั้งใช้งานจริง

รายละเอียด
พารามิเตอร์
[in] aPeerNodeId
การอ้างอิงรหัส 64 บิตของโหนดการเพียร์หรือปลายทางของบริการที่เป็นเป้าหมายของการเชื่อมโยงที่ล้มเหลว
[in] aReport
การอ้างอิงออบเจ็กต์ StatusReport ที่อธิบายสาเหตุของความล้มเหลว

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
)

ขอให้ยกเลิกการเชื่อมโยงและนำออกจากตารางการเชื่อมโยง

เมื่อการเชื่อมโยงเป็น "ไม่เชื่อมโยง" ธุรกรรมใดๆ ก็ตามที่ขึ้นอยู่กับวิธีการชำระเงินดังกล่าวในปัจจุบันควรถูกลบออกด้วย วิธีนี้จะทำให้ธุรกรรมทั้งหมดที่มีการเชื่อมโยงนี้เสร็จสมบูรณ์โดยอัตโนมัติ

รายละเอียด
พารามิเตอร์
[in] aPeerNodeId
การอ้างอิงรหัสโหนด 64 บิตหรือปลายทางของบริการที่ระบุการเชื่อมโยง
ดูเพิ่มเติม:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

ขอให้ยกเลิกการเชื่อมโยงและนำออกจากตารางการเชื่อมโยง

เมื่อการเชื่อมโยงเป็น "ไม่เชื่อมโยง" ธุรกรรมใดๆ ก็ตามที่ขึ้นอยู่กับวิธีการชำระเงินดังกล่าวในปัจจุบันควรถูกลบออกด้วย วิธีนี้จะทำให้ธุรกรรมทั้งหมดที่มีการเชื่อมโยงนี้เสร็จสมบูรณ์โดยอัตโนมัติ

รายละเอียด
พารามิเตอร์
[in] aPeerNodeId
การอ้างอิงรหัสโหนด 64 บิตหรือปลายทางของบริการที่ระบุการเชื่อมโยง
[in] aErr
WEAVE_NO_ERROR หากไม่มีเหตุผลที่เฉพาะเจาะจงสำหรับคำขอที่ยกเลิกการเชื่อมโยงนี้ มิเช่นนั้น สาเหตุของข้อผิดพลาดจะถูกส่งต่อ
ดูเพิ่มเติม
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

ฟังก์ชันที่มีการป้องกัน

ล้าง

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
)

สรุป

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
)