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
การอ้างอิงไปยังออบเจ็กต์ Status Report ที่อธิบายรายละเอียดเหตุผลในการล้มเหลว
การส่งคืน

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
การอ้างอิงไปยังออบเจ็กต์ Status Report ที่อธิบายรายละเอียดเหตุผลในการล้มเหลว

IncompleteIndication

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

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

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

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

เริ่มต้น

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

เริ่มต้น

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)

~โปรโตคอล

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
)