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 เหล่านี้จะเรียกใช้ฟังก์ชันเรียกกลับที่กำหนดค่าไว้ในปัจจุบันบนออบเจ็กต์เซิร์ฟเวอร์ แอปพลิเคชันสามารถเปลี่ยนสถานะของเซิร์ฟเวอร์ในระหว่างการเรียกกลับของเหตุการณ์ได้ ยกเว้นในกรณีที่ระบุไว้ ข้อยกเว้นโดยรวมประการหนึ่งคือเมธอด Shutdown() ของออบเจ็กต์ ซึ่งอาจไม่มีการเรียกใช้ในระหว่างการเรียกกลับ

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

EchoRequestReceived

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

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

EchoResponseSent

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

การสืบทอด

รับค่าจาก nl::Weave::WeaveServerBase
Direct Known Subclasses: 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
แสดงผลตัวชี้ไปยังฟังก์ชันเรียกกลับของเหตุการณ์ API ที่กำหนดค่าในปัจจุบันบนออบเจ็กต์ WeaveEchoServer
Init(WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState)
เริ่มต้นออบเจ็กต์ WeaveEchoServer
Init(WeaveExchangeManager *exchangeMgr)
เริ่มต้นออบเจ็กต์ WeaveEchoServer
SetEventCallback(EventCallback eventCallback)
void
ตั้งค่าฟังก์ชันเรียกกลับของเหตุการณ์ 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 

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

เริ่มต้น

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

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

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

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

เริ่มต้น

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
)

ตั้งค่าฟังก์ชันเรียกกลับของเหตุการณ์ 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
รหัสเหตุการณ์ที่ส่งผ่านโดยโค้ดเรียกกลับของเหตุการณ์
[in] inParam
การอ้างอิงของพารามิเตอร์เหตุการณ์อินพุตที่ส่งผ่านโดยโค้ดเรียกกลับของเหตุการณ์
[in] outParam
การอ้างอิงของพารามิเตอร์เหตุการณ์เอาต์พุตที่ส่งผ่านโดยโค้ดเรียกกลับของเหตุการณ์