nl::Weave::Profiles::Echo_Next::WeaveEchoServer

#include <src/lib/profiles/echo/Next/WeaveEchoServer.h>

Accepts EchoRequest messages from a peer node and responds with an EchoResponse message.

สรุป

คลาส WeaveEchoServer จะใช้ฝั่งผู้รับของโปรโตคอล Weave Echo โปรโตคอล Weave Echo ใช้ทดสอบการทำงานและความสามารถในการเข้าถึงของโหนด Weave คล้ายกับโปรโตคอล ping ของ ICMP ได้

แอปพลิเคชันจะใช้คลาส WeaveEchoServer เพื่อเปิดใช้การตอบกลับอัตโนมัติสำหรับข้อความ EchoRequest ที่เข้ามาได้ได้ มีคลาสที่สอดคล้องกันสำหรับการเริ่มคำขอเสียงสะท้อน (ดู WeaveEchoClient)

โดยค่าเริ่มต้น WeaveEchoServer จะตอบสนองต่อ EchoRequest โดยทันทีด้วยการตอบสนองที่มีเพย์โหลดเดียวกันกับคำขอ แต่แอปพลิเคชันสามารถเปลี่ยนแปลงลักษณะการทำงานนี้ในระหว่างการประมวลผลเหตุการณ์ EchoRequestReceived API ได้

เหตุการณ์ API

ในระหว่างการทำงาน ออบเจ็กต์ WeaveEchoServer จะเรียกใช้แอปพลิเคชันเพื่อขอการดำเนินการที่เฉพาะเจาะจงหรือส่งการแจ้งเตือนเหตุการณ์สำคัญ การเรียกเหตุการณ์ API เหล่านี้จะทำไปยังฟังก์ชัน Callback ที่กำหนดค่าไว้ในปัจจุบันในออบเจ็กต์เซิร์ฟเวอร์ แอปพลิเคชันสามารถเปลี่ยนสถานะของเซิร์ฟเวอร์ในระหว่าง Callback ของเหตุการณ์ได้อย่างอิสระ ยกเว้นในกรณีที่ระบุไว้เป็นอย่างอื่น ข้อยกเว้นโดยรวมอย่างหนึ่งคือเมธอด Shutdown() ของออบเจ็กต์ ซึ่งอาจไม่มีการเรียกใช้ในระหว่าง Callback

กําหนดเหตุการณ์ API ต่อไปนี้

EchoRequestReceived

แอปเทียบเท่าได้รับข้อความ EchoRequest อาร์กิวเมนต์ในเหตุการณ์จะมีเพย์โหลดคำขอ บริบทการแลกเปลี่ยนที่ได้รับข้อความ และข้อมูลเมตาเกี่ยวกับข้อความคำขอ

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

EchoResponseSent

ส่งข้อความ EchoResponse แล้วหรือส่งไม่สำเร็จ อาร์กิวเมนต์ไปยังเหตุการณ์มีข้อผิดพลาดที่เกิดจากการส่งข้อความ (หากมี) และบริบทของการแลกเปลี่ยนที่มีการส่งข้อความ

การสืบทอด

รับค่าจาก: nl::Weave::WeaveServerBase
คลาสย่อยที่รู้จักโดยตรง: nl::Weave::DeviceLayer::Internal::EchoServer

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

WeaveEchoServer(void)
ตัวสร้างเริ่มต้นสำหรับ WeaveEchoServer

ประเภทสาธารณะ

EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload) Typedef
void(*
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) Typedef
void(*
EventType{
  kEvent_EchoRequestReceived = 1,
  kEvent_EchoResponseSent = 2,
  kEvent_DefaultCheck = 100
}
enum

แอตทริบิวต์สาธารณะ

AppState
void *
ตัวชี้ไปยังข้อมูลเฉพาะแอปพลิเคชัน
OnEchoRequestReceived
EchoFunct

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

GetEventCallback(void) const
EventCallback
แสดงผลตัวชี้ไปยังฟังก์ชัน Callback ของเหตุการณ์ API ที่กําหนดค่าไว้ในออบเจ็กต์ WeaveEchoServer อยู่ในปัจจุบัน
Init(WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState)
เริ่มต้นออบเจ็กต์ WeaveEchoServer
Init(WeaveExchangeManager *exchangeMgr)
เริ่มต้นออบเจ็กต์ WeaveEchoServer
SetEventCallback(EventCallback eventCallback)
void
ตั้งค่าฟังก์ชัน Callback ของเหตุการณ์ API ในออบเจ็กต์ WeaveEchoServer
Shutdown(void)
ปิดออบเจ็กต์ WeaveEchoServer ที่เริ่มต้นไว้ก่อนหน้านี้

ฟังก์ชันสาธารณะแบบคงที่

DefaultEventHandler(void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam)
void
ตัวแฮนเดิลเริ่มต้นสำหรับเหตุการณ์ API WeaveEchoServer

โครงสร้าง

nl::Weave::Profiles::Echo_Next::WeaveEchoServer::InEventParam

ป้อนพารามิเตอร์ไปยังเหตุการณ์ WeaveEchoServer API

nl::Weave::Profiles::Echo_Next::WeaveEchoServer::OutEventParam

เอาต์พุตพารามิเตอร์ไปยังเหตุการณ์ API ของ WeaveEchoServer

ประเภทสาธารณะ

EchoFunct

void(* EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload)

EventCallback

void(* EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)

EventType

 EventType
พร็อพเพอร์ตี้
kEvent_DefaultCheck

ใช้เพื่อยืนยันการจัดการเหตุการณ์เริ่มต้นที่ถูกต้องในแอปพลิเคชัน

kEvent_EchoRequestReceived

แอปเทียบเท่าได้รับข้อความ EchoRequest

kEvent_EchoResponseSent

ส่งข้อความ EchoResponse แล้วหรือส่งไม่สำเร็จ

แอตทริบิวต์สาธารณะ

AppState

void * AppState

ตัวชี้ไปยังข้อมูลเฉพาะแอปพลิเคชัน

OnEchoRequestReceived

EchoFunct OnEchoRequestReceived

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

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

แสดงผลตัวชี้ไปยังฟังก์ชัน Callback ของเหตุการณ์ API ที่กําหนดค่าไว้ในออบเจ็กต์ WeaveEchoServer อยู่ในปัจจุบัน

Init

WEAVE_ERROR Init(
  WeaveExchangeManager *exchangeMgr,
  EventCallback eventCallback,
  void *appState
)

เริ่มต้นออบเจ็กต์ WeaveEchoServer

เริ่มต้นออบเจ็กต์ WeaveEchoServer เพื่อตอบกลับข้อความสะท้อนกลับจากแอปเทียบเท่า

รายละเอียด
พารามิเตอร์
[in] exchangeMgr
ตัวชี้ไปยังออบเจ็กต์ WeaveExchangeManager
[in] eventCallback
ตัวชี้ไปยังฟังก์ชันที่ออบเจ็กต์ WeaveEchoServer จะเรียกใช้เพื่อส่งเหตุการณ์ API ไปยังแอปพลิเคชัน
[in] appState
ตัวชี้ไปยังออบเจ็กต์ที่กำหนดโดยแอปพลิเคชัน ซึ่งระบบจะส่งคืนกลับไปยังแอปพลิเคชันเมื่อมีเหตุการณ์ API เกิดขึ้น

Init

WEAVE_ERROR Init(
  WeaveExchangeManager *exchangeMgr
)

เริ่มต้นออบเจ็กต์ WeaveEchoServer

เริ่มต้นออบเจ็กต์ WeaveEchoServer เพื่อตอบกลับข้อความสะท้อนกลับจากแอปเทียบเท่า

เลิกใช้งานแล้ว: โปรดใช้ Init(WeaveExchangeManager * ExchangeMgr, EventCallback eventCallback, void * appState)

รายละเอียด
พารามิเตอร์
[in] exchangeMgr
ตัวชี้ไปยังออบเจ็กต์ WeaveExchangeManager
[in] eventCallback
ตัวชี้ไปยังฟังก์ชันที่ออบเจ็กต์ WeaveEchoServer จะเรียกใช้เพื่อส่งเหตุการณ์ API ไปยังแอปพลิเคชัน
[in] appState
ตัวชี้ไปยังออบเจ็กต์ที่กำหนดโดยแอปพลิเคชัน ซึ่งระบบจะส่งคืนกลับไปยังแอปพลิเคชันเมื่อมีเหตุการณ์ API เกิดขึ้น

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

ตั้งค่าฟังก์ชัน Callback ของเหตุการณ์ API ในออบเจ็กต์ WeaveEchoServer

ปิดการทำงาน

WEAVE_ERROR Shutdown(
  void
)

ปิดออบเจ็กต์ WeaveEchoServer ที่เริ่มต้นไว้ก่อนหน้านี้

โปรดทราบว่าจะมีการเรียกเมธอดนี้ก็ต่อเมื่อมีการเรียกเมธอด Init() ไว้ก่อนหน้านี้เท่านั้น

WeaveEchoServer

 WeaveEchoServer(
  void
)

ตัวสร้างเริ่มต้นสำหรับ WeaveEchoServer

ฟังก์ชันสาธารณะแบบคงที่

DefaultEventHandler

void DefaultEventHandler(
  void *appState,
  EventType eventType,
  const InEventParam & inParam,
  OutEventParam & outParam
)

ตัวแฮนเดิลเริ่มต้นสำหรับเหตุการณ์ API WeaveEchoServer

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

รายละเอียด
พารามิเตอร์
[in] appState
ตัวชี้ไปยังข้อมูลสถานะที่แอปพลิเคชันกำหนดซึ่งเชื่อมโยงกับออบเจ็กต์เซิร์ฟเวอร์
[in] eventType
รหัสเหตุการณ์ที่ Callback ของเหตุการณ์ส่งผ่าน
[in] inParam
การอ้างอิงพารามิเตอร์เหตุการณ์อินพุตที่ส่งผ่านโดย Callback ของเหตุการณ์
[in] outParam
การอ้างอิงพารามิเตอร์เหตุการณ์เอาต์พุตที่ส่งโดย Callback ของเหตุการณ์