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. בדומה לפרוטוקול הפינג של ICMP, ניתן להשתמש בפרוטוקול Weave Echo כדי לבדוק את הפעילות והיכולת להגיע לצומת של Weave.
אפליקציות יכולות להשתמש במחלקה WeaveEchoServer כדי להפעיל תגובה אוטומטית להודעות נכנסות של EchoRequest. קיימת מחלקה תואמת לביצוע בקשות הד (מידע נוסף זמין במאמר WeaveEchoClient).
כברירת מחדל, ה-WeaveEchoServer מגיב מיד ל-EchoRequest עם תשובה שמכילה את אותו מטען ייעודי (payload) של הבקשה. עם זאת, האפליקציה יכולה לשנות את ההתנהגות הזו במהלך העיבוד של אירוע EchoRequestReceived API.
אירועי API
במהלך הפעילות, האובייקט WeaveEchoServer יקרא לאפליקציה כדי לבקש פעולות ספציפיות או לשלוח התראות לגבי אירועים חשובים. הקריאות האלה לאירועי API מתבצעות לפונקציית הקריאה החוזרת שמוגדרת כרגע באובייקט השרת. אלא אם צוין אחרת, האפליקציות יכולות לשנות את מצב השרת במהלך קריאה חוזרת של אירוע. יוצא הדופן היחיד הוא שיטת Shutdown() של האובייקט, והיא לא יכולה להתבצע אף פעם במהלך קריאה חוזרת.
אירועי ה-API הבאים מוגדרים:
EchoRequestReceived
הודעת EchoRequest התקבלה מעמית. הארגומנטים לאירוע מכילים את המטען הייעודי (Payload) של הבקשה, ההקשר של ה-Exchange שלגביו התקבלה ההודעה ומטא-מידע על הודעת הבקשה.
אם האפליקציה בוחרת, היא עשויה לשנות את ארגומנטים הפלט של האירוע כדי לאלץ עיכוב בתגובה או כדי להסתיר את התגובה לחלוטין. בנוסף, הוא עשוי לשנות את התוכן של מאגר הנתונים הזמני של המטען (payload), שיהפוך למטען הייעודי (Payload) של הודעת התשובה.
EchoResponseSent
הודעת EchoResponse נשלחה או שליחתה נכשלה. הארגומנטים לאירוע מכילים את השגיאה שנוצרה משליחת ההודעה (אם הייתה כזו) ואת הקשר ההחלפה שדרכו ההודעה נשלחה.
ירושה
עובר בירושה מ: nl::Weave::WeaveServerBaseמחלקות משנה מוכרות ישירות: nl::Weave::DeviceLayer::Internal::EchoServer
בנייה |
|
---|---|
WeaveEchoServer(void)
constructor ברירת המחדל של WeaveEchoServer.
|
סוגים ציבוריים |
|
---|---|
EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload)
|
typedefvoid(*
|
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)
|
typedefvoid(*
|
EventType{
|
טיפוסים בני מנייה (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
handler ברירת מחדל לאירועי API של WeaveEchoServer.
|
מבנים |
|
---|---|
nl:: |
צריך להזין פרמטרים לאירוע WeaveEchoServer של API. |
nl:: |
פרמטרים של פלט לאירוע WeaveEchoServer API. |
סוגים ציבוריים
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.
Init
WEAVE_ERROR Init( WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState )
מאתחלים אובייקט WeaveEchoServer.
לאתחל אובייקט WeaveEchoServer כדי להגיב להודעות הד מקולגה.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
Init
WEAVE_ERROR Init( WeaveExchangeManager *exchangeMgr )
מאתחלים אובייקט WeaveEchoServer.
לאתחל אובייקט WeaveEchoServer כדי להגיב להודעות הד מקולגה.
הוצא משימוש: צריך להשתמש ב-Init(WeaveExchangeManager * exchangeMgr, EventCallback eventCallback, cancel * appState).
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
SetEventCallback
void SetEventCallback( EventCallback eventCallback )
מגדירה את פונקציית הקריאה החוזרת של אירוע ה-API באובייקט WeaveEchoServer.
כיבוי
WEAVE_ERROR Shutdown( void )
כיבוי של אובייקט WeaveEchoServer שאותחל בעבר.
שימו לב שאפשר לקרוא לשיטה הזו רק אם היא נקראה בעבר לשיטה Init().
פונקציות סטטיות ציבוריות
DefaultEventHandler
void DefaultEventHandler( void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam )
handler ברירת מחדל לאירועי API של WeaveEchoServer.
אפליקציות נדרשות לקרוא ל-method הזה לכל אירועי API שהם לא מזהים או לא מטפלים בהם. הפרמטרים שסופקו חייבים להיות זהים לפרמטרים שמועברים על ידי אובייקט השרת אל פונקציית המטפל באירועים של האפליקציה.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|