nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
אובייקט המנהל לספריית השירות של Weave.
סיכום
מנהל שירות Weave הוא הממשק הראשי עבור אפליקציות של שירות הספרייה. לכן, הוא מסתיר את הסיבוכים הטבועים בחיפוש של רשומת הספרייה המשויכת לנקודת הקצה של השירות, ביצוע חיפוש DNS על אחד או יותר משמות המארחים שנמצאים שם, ניסיון התחברות, אבטחת החיבור וכן הלאה. הוא יכול גם לנהל מטמון של פרטי ספריית השירות.
בונים והורסים |
|
---|---|
WeaveServiceManager(void)
שיטה זו מפעילה את המופע של WeaveServiceManager.
|
|
~WeaveServiceManager(void)
השיטה הזו משמידה את המכונה WeaveServiceManager.
|
סוגים ציבוריים |
|
---|---|
@303{
|
טיפוסים בני מנייה (enum) |
OnConnectBegin)(struct ServiceConnectBeginArgs &args)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBeginvoid(*
קריאה חוזרת (callback) של האפליקציה שבוצעה לפני יצירת החיבור. |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryBeginvoid(*
קריאה חוזרת (callback) של האפליקציה לסימון הזמן של שאילתה יוצאת בספריית השירות. |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfovoid(*
קריאה חוזרת (callback) של אפליקציה למסירת ערכי זמן מתגובה מספריית שירות. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor פונקציית גישה לפרטים של ספריית הבסיס. |
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandlervoid(*
handler לתנאי שגיאה וסטטוס. |
תפקידים ציבוריים |
|
---|---|
SetConnectBeginCallback(OnConnectBegin aConnectBegin)
|
void
אפשר להגדיר פונקציית קריאה חוזרת שתופיע מיד לפני יצירת החיבור.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
השיטה הזו מבטלת בקשת התחברות.
|
clearCache(void)
|
void
השיטה הזו מנקה את המצב ואת המטמון של חשבון הניהול אם המצב נמצא במצב kServiceMgrState_resolved. המשמעות היא שהתקבלה תגובה מנקודת הקצה של Service Directory.
|
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
|
ה-method הזה מבקש להתחבר לשירות Weave.
|
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
|
ה-method הזה מפעיל את האובייקט של מנהל השירות.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
השיטה הזו מחפשת פרטי ספרייה עבור נקודת קצה של שירות.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
השיטה הזו מחפשת פרטי ספרייה עבור נקודת קצה של שירות.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
השיטה הזו מטפלת באירוע סגירת החיבור שדווח באמצעות ההקשר המשויך של Weave Exchange.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
השיטה הזו מטפלת באירוע החיבור שהסתיים בטרנזקציית שאילתה של נקודת קצה של שירות.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
שיטה זו מטפלת בכל הודעת תגובה בשיחה עם שירות ספריות.
|
onResponseTimeout(void)
|
void
שיטה זו מטפלת באירוע הזמן הקצוב לתפוגה, שבו לא התקבלה תגובה משירות הספריות.
|
relocate(WEAVE_ERROR aError)
|
void
השיטה הזו מעבירה את המטמון של ספריית השירות.
|
relocate(void)
|
void
השיטה הזו מעבירה את המטמון של ספריית השירות.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
צריך להוסיף את רשומת הספרייה שתבטל את שם המארח ואת מזהה היציאה בתחילת הרשימה של הספריות.
|
reset(WEAVE_ERROR aError)
|
void
השיטה הזו מאפסת את מנהל השירות למצבו הראשוני.
|
reset(void)
|
void
השיטה הזו מאפסת את מנהל השירות למצבו הראשוני.
|
unresolve(WEAVE_ERROR aError)
|
void
השיטה הזו מבטלת את התוקף של המטמון של ספריית השירות.
|
unresolve(void)
|
void
השיטה הזו מבטלת את התוקף של המטמון של ספריית השירות.
|
מחלקות |
|
---|---|
nl:: |
הסיווג הזה מייצג עסקה אחת שמנוהלת על ידי מנהל השירות. |
סוגים ציבוריים
@303
@303
תכונות | |
---|---|
kWeave_DefaultSendTimeout
|
מספר אלפיות השנייה שצריך לקבל תגובה לשאילתת הספרייה לפני הזמן הקצוב לתפוגה של ההקשר של ה-Exchange. |
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
קריאה חוזרת (callback) של האפליקציה שבוצעה לפני יצירת החיבור.
אפליקציות יכולות להשתמש בקריאה החוזרת (callback) כדי לבחון ולשנות את הארגומנטים שהועברו אל #WeaveConnection::Connect() במהלך יצירת חיבור שירות. במקרה כזה, הקריאה החוזרת תתבצע גם לצורך החיבור לנקודת הקצה של שירות היעד וגם לצורך החיבור לנקודת הקצה של Service Directory, במקרה שיהיה צורך לבצע חיפוש בספרייה.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
קריאה חוזרת (callback) של האפליקציה לסימון הזמן של שאילתה יוצאת בספריית השירות.
הפקודה הזאת מופעלת כשאנחנו עומדים לשלוח בקשת שאילתה לגבי נקודת קצה (endpoint) של שירות. הערך הזה משמש להתאמה ל-OnServiceEndpointQueryEnd כדי לפצות על זמן הטיסה של ההודעה.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
קריאה חוזרת (callback) של אפליקציה למסירת ערכי זמן מתגובה מספריית שירות.
הפעולה הזו מופעלת כשאנחנו מקבלים מידע על זמן מתגובה לשאילתה של ספריית השירות. חשוב לזכור שההתקשרות חזרה תתבצע רק אם התשובה תנותח בהצלחה ונכלול מידע על משך הזמן.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
פונקציית גישה לפרטים של ספריית הבסיס.
אתה צריך להתחיל במקום כלשהו ועם ספריית השירות עליך להתחיל עם ספריית stub שמכילה את הכתובת של שרת שניתן ללחוץ עליו כדי לגשת לכל השאר. המיקום והמקור של המידע הזה צפויים להשתנות ממכשיר למכשיר, לכן אנחנו מספקים כאן קריאה חוזרת (callback) של רכיב הגישה.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
החזרות |
WEAVE_NO_ERROR יתבצע בהצלחה, אחרת תהליך הטעינה יבוטל.
|
StatusHandler
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
handler לתנאי שגיאה וסטטוס.
משתמש של מנהל השירות עשוי לקבל הודעה על בעיות בניסיון לבצע בקשת התחברות באחת משתי דרכים. ייתכן שהוא יקבל דוח סטטוס מהשירות או יקבל WEAVE_ERROR באופן פנימי. בכל מקרה, המידע מגיע דרך הקריאה החוזרת (callback).
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
תפקידים ציבוריים
SetConnectBeginCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
אפשר להגדיר פונקציית קריאה חוזרת שתופיע מיד לפני יצירת החיבור.
פרטים | |||
---|---|---|---|
פרמטרים |
|
WeaveServiceManager
WeaveServiceManager( void )
שיטה זו מפעילה את המופע של WeaveServiceManager.
חשוב לזכור שצריך לקרוא ל-init() כדי להמשיך לאתחל את המופע הזה.
ביטול
void cancel( uint64_t aServiceEp, void *aAppState )
השיטה הזו מבטלת בקשת התחברות.
השיטה הזו מבטלת בקשת התחברות בהינתן המזהה של נקודת הקצה של השירות ואובייקט מצב האפליקציה שהועבר בזמן הבקשה כמזהים. אם זו בקשת ההתחברות האחרונה, השיטה הזו תנקה גם את מצב החיבור לספריית השירות שבהמתנה.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
clearCache
void clearCache( void )
השיטה הזו מנקה את המצב ואת המטמון של חשבון הניהול אם המצב נמצא במצב kServiceMgrState_resolved. המשמעות היא שהתקבלה תגובה מנקודת הקצה של Service Directory.
חיבור
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
ה-method הזה מבקש להתחבר לשירות Weave.
זוהי שיחת ההתחברות ברמה העליונה. בעיקרון הוא מייצר חיבור מאובטח לשירות Weave בהינתן נקודת קצה של שירות ומצב אימות או שהאימות לא פעיל.
אפשר לקרוא לשיטה הזו רק אחרי קריאה מוצלחת ל-init(). בקשת התחברות יכולה להיות ניתנת לביטול על ידי cancel().
אפשר להפעיל את השיטה הזו לפני שהמטמון המקומי ימולא בנתונים מנתונים שהוקצו כברירת מחדל או מנסיעה לשירות הספריות. מנהל השירות רק יוסיף את הבקשה לתור לפני שניתן יהיה לקבוע את תוכן המטמון.
פרטים | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||||
החזרות |
WEAVE_NO_ERROR כשהמערכת תזהה הצלחה. אחרת, יופיע קוד שגיאה מתאים.
|
init
WEAVE_ERROR init( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin )
ה-method הזה מפעיל את האובייקט של מנהל השירות.
כדי להשתמש באובייקט, יש לאתחל אובייקט של מנהל שירות. לאחר קריאה מוצלחת לשיטה הזו, לקוחות יכולים להתחיל לקרוא ל-connect() , lookup() ולשיטות אחרות.
פרטים | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||||||
החזרות |
WEAVE_ERROR_INVALID_ARGUMENT אם ארגומנט של פונקציה לא חוקי; אחרת, WEAVE_NO_ERROR.
|
לחפש
WEAVE_ERROR lookup( uint64_t aServiceEp, HostPortList *outHostPortList )
השיטה הזו מחפשת פרטי ספרייה עבור נקודת קצה של שירות.
אם ספריית השירות נפתרה, כלומר אם בוצעה פעולת connect() מוצלחת, השיטה הזו תאכלס את האובייקט HostPortList שסופק.
הערה: השדה HostPortList מקושר לאובייקט WeaveServiceManager. הוא נשאר תקף עד לניקוי המטמון של ספריית השירות או עד לחיפוש נוסף של ספריית השירות.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
לחפש
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
השיטה הזו מחפשת פרטי ספרייה עבור נקודת קצה של שירות.
אם ספריית השירות נפתרה, כלומר אם בוצעה פעולת connect() מוצלחת, השיטה הזו תחזיר רשומת ספרייה על סמך מזהה של נקודת קצה (endpoint) של שירות.
השיטה הזו חושפת את הפרטים של ההטמעה הפנימית של ספריית השירות, ויש עדיפות גבוהה להטמעות של השיטה הזו שיוצרת את HostPortList.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
השיטה הזו מטפלת באירוע סגירת החיבור שדווח באמצעות ההקשר המשויך של Weave Exchange.
פרטים | |||
---|---|---|---|
פרמטרים |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
השיטה הזו מטפלת באירוע החיבור שהסתיים בטרנזקציית שאילתה של נקודת קצה של שירות.
יש שתי אפשרויות. ראשית, ייתכן שהחיבור נכשל ובמקרה זה סיימנו. אחרת, החיבור הושלם בפועל, ומה שאנחנו רוצים לעשות הוא לפתוח הקשר של החלפה ולשלוח שאילתה לגבי ספרייה.
פרטים | |||
---|---|---|---|
פרמטרים |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
שיטה זו מטפלת בכל הודעת תגובה בשיחה עם שירות ספריות.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
onResponseTimeout
void onResponseTimeout( void )
שיטה זו מטפלת באירוע הזמן הקצוב לתפוגה, שבו לא התקבלה תגובה משירות הספריות.
העברה
void relocate( WEAVE_ERROR aError )
השיטה הזו מעבירה את המטמון של ספריית השירות.
כשנקודת קצה של שירות (endpoint) של שירות מחזירה דוח סטטוס עם קוד הסטטוס kStatus_Relocation, האפליקציה יכולה לקרוא לפונקציה unresolve() כדי לנקות את המטמון ולבטל בקשות התחברות. השיטה הזו מפשטת את הטיפול בשגיאות באמצעות קריאה ל-unresolve() בפעם הראשונה, ול-reset() אם הבעיה עדיין לא נפתרה.
גרסה זו של השיטה - כאן במקרה של תאימות לאחור - לוקחת ומתעדת שגיאה, ולאחר מכן קוראת ל-relocate(void) (מיקום מחדש) .
פרטים | |||
---|---|---|---|
פרמטרים |
|
relocate(void)
העברה
void relocate( void )
השיטה הזו מעבירה את המטמון של ספריית השירות.
כשנקודת קצה של שירות (endpoint) של שירות מחזירה דוח סטטוס עם קוד הסטטוס kStatus_Relocation, האפליקציה יכולה לקרוא לפונקציה unresolve() כדי לנקות את המטמון ולבטל בקשות התחברות. השיטה הזו מפשטת את הטיפול בשגיאות באמצעות קריאה ל-unresolve() בפעם הראשונה, ול-reset() אם הבעיה עדיין לא נפתרה.
ראו גם:מיקום מחדש(WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
צריך להוסיף את רשומת הספרייה שתבטל את שם המארח ואת מזהה היציאה בתחילת הרשימה של הספריות.
אפס
void reset( WEAVE_ERROR aError )
השיטה הזו מאפסת את מנהל השירות למצבו הראשוני.
השיטה הזו מאפסת את כל המצבים של מנהל השירות, כולל מצב התקשורת, מצב המטמון והמצב של בקשות התחברות בהמתנה.
גרסה זו של השיטה - כאן במקרה של תאימות לאחור - מקבלת שגיאה ומתעדת אותה, ולאחר מכן קוראת ל-reset(void) .
פרטים | |||
---|---|---|---|
פרמטרים |
|
reset(void)
אפס
void reset( void )
השיטה הזו מאפסת את מנהל השירות למצבו הראשוני.
השיטה הזו מאפסת את כל המצבים של מנהל השירות, כולל מצב התקשורת, מצב המטמון והמצב של בקשות התחברות בהמתנה.
ראו גם:reset(WEAVE_ERROR)
לא פתור
void unresolve( WEAVE_ERROR aError )
השיטה הזו מבטלת את התוקף של המטמון של ספריית השירות.
השיטה הזו מגדירה את מצב המטמון של ספריית השירות, כך שבבקשה הבאה מנהל השירות יפיק שאילתה עם ספריית השירותים.
גרסה זו של השיטה – כאן במקרה של תאימות לאחור – מתעדת שגיאה ומתועדת ולאחר מכן קוראת ל-unresolve(void) .
פרטים | |||
---|---|---|---|
פרמטרים |
|
unresolve(void)
לא פתור
void unresolve( void )
השיטה הזו מבטלת את התוקף של המטמון של ספריית השירות.
השיטה הזו מגדירה את מצב המטמון של ספריית השירות, כך שבבקשה הבאה מנהל השירות יפיק שאילתה עם ספריית השירותים.
ראו גם:ביטול(WEAVE_ERROR)