nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
אובייקט המנהל של ספריית השירות של Weave.
סיכום
מנהל השירות של Weave הוא הממשק הראשי של אפליקציות לשירות הספריות. לכן הוא מסתיר את הסיבוכים שטבועים בחיפוש רשומת הספרייה המשויכת לנקודת קצה (endpoint) של שירות, ביצוע חיפוש DNS על אחד או יותר משמות המארחים שנמצאים שם, ניסיון להתחבר, אבטחת החיבור וכן הלאה. הוא יכול גם לנהל מטמון של מידע מספריית השירות.
בנייה |
|
---|---|
WeaveServiceManager(void)
השיטה הזו מפעילה את המכונה WeaveServiceManager.
|
|
~WeaveServiceManager(void)
השיטה הזו גורמת להשמדת את המכונה WeaveServiceManager.
|
סוגים ציבוריים |
|
---|---|
@303{
|
טיפוסים בני מנייה (enum) |
OnConnectBegin)(struct ServiceConnectBeginArgs &args)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBeginvoid(*
התקשרות חזרה של אפליקציה שבוצעה מיד לפני יצירת החיבור. |
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)
|
השיטה הזו מבקשת התחברות לשירות Weave.
|
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
|
השיטה הזו מפעילה את האובייקט של מנהל השירות.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
השיטה הזו מחפשת פרטי ספרייה עבור נקודת קצה (endpoint) של שירות.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
השיטה הזו מחפשת פרטי ספרייה עבור נקודת קצה (endpoint) של שירות.
|
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
|
מספר אלפיות השנייה שתגובה לשאילתת הספרייה חייבת להתקבל לפני תום הזמן הקצוב לתפוגה של ההקשר של ההחלפה. |
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
קריאה חוזרת של אפליקציה שבוצעה מיד לפני יצירת החיבור.
אפליקציות יכולות להשתמש בקריאה החוזרת (callback) הזו כדי לצפות בארגומנטים שמועברים אל #WeaveConnection::Connect() במהלך יצירת החיבור לשירות, ולשנות אותם. הקריאה החוזרת (callback) הזו תתבצע גם עבור החיבור לנקודת הקצה של שירות היעד וגם עבור החיבור לנקודת הקצה של Service Directory במקרה שיש לבצע חיפוש בספרייה.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
קריאה חוזרת (callback) של אפליקציה לסימון המועד של שאילתה יוצאת בספריית השירות.
קוראים לזה כשאנחנו עומדים לשלוח בקשת שאילתה על נקודת קצה (endpoint) של שירות. משמש להתאמה ל-OnServiceEndpointQueryEnd על מנת לפצות על זמן הטיסה של ההודעה.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
קריאה חוזרת (callback) של אפליקציה למסירת ערכי זמן מתגובה מספריית השירות.
קוראים לפעולה הזו כשאנחנו מקבלים פרטי זמן מתשובה לשאילתה של ספריית השירות. לתשומת ליבכם: הקריאה החוזרת (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 )
השיטה הזו מבקשת התחברות לשירות Weave.
זוהי שיחת ההתחברות ברמה העליונה. הוא למעשה יוצר חיבור מאובטח לשירות Weave בהינתן נקודת קצה (endpoint) של שירות ומצב אימות או סיום ניסיון.
אפשר לקרוא לשיטה הזו רק אחרי קריאה מוצלחת ל-init(). בנוסף, אפשר לבטל בקשת חיבור על ידי cancel().
ניתן לקרוא לשיטה הזו לפני שהמטמון המקומי ממולא בנתונים מנתונים שהוקצו כברירת מחדל או מנסיעה לשירות הספרייה. מנהל השירות פשוט יכניס את הבקשה לתור כדי שיהיה אפשר לקבוע את תוכן המטמון.
פרטים | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||||
החזרות |
WEAVE_NO_ERROR לגבי הצלחה; אחרת, קוד שגיאה תואם.
|
להתחיל
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 )
השיטה הזו מחפשת פרטי ספרייה עבור נקודת קצה (endpoint) של שירות.
אם ספריית השירות נפתרה, כלומר אם בוצעה פעולת connect() מוצלחת, השיטה הזו תאכלס את האובייקט HostPortList שסופק.
הערה: השדה HostPortList מקושר לאובייקט WeaveServiceManager; הוא נשאר בתוקף עד שהמטמון של ספריית השירות מנוקה או עד שמתרחש חיפוש נוסף של ספריית השירות.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
מוחזר ערכים |
|
חיפוש
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
השיטה הזו מחפשת פרטי ספרייה של נקודת קצה (endpoint) של שירות.
אם ספריית השירות נפתרה, כלומר אם בוצעה פעולת connect() ללא שגיאות, השיטה הזו תחזיר רשומת ספרייה בהינתן מזהה נקודת קצה של שירות.
השיטה הזו חושפת את פרטי ההטמעה הפנימית של ספריית השירות. בהטמעות, יש עדיפות לשימוש בווריאנט של השיטה הזו שיוצרת את HostPortList.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
מוחזר ערכים |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
השיטה הזו מטפלת באירוע סגירת החיבור שדווח על ידי ההקשר המשויך של Weave Exchange.
פרטים | |||
---|---|---|---|
פרמטרים |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
השיטה הזו מטפלת באירוע הקישור שהושלם עבור טרנזקציית שאילתה על נקודת קצה של שירות.
יש כמה אפשרויות. קודם כול, יכול להיות שהחיבור נכשל. במקרה כזה סיימנו. אחרת, למעשה החיבור הושלם. אנחנו רוצים לפתוח הקשר של Exchange ולשלוח שאילתה לספרייה.
פרטים | |||
---|---|---|---|
פרמטרים |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
השיטה הזו מטפלת בכל הודעת תשובה בשיחה עם שירות הספריות.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
onResponseTimeout
void onResponseTimeout( void )
שיטה זו מטפלת באירוע הזמן הקצוב לתפוגה, שבו לא התקבלה תגובה משירות הספריות.
לעבור למיקום חדש
void relocate( WEAVE_ERROR aError )
השיטה הזו משנה את מיקום המטמון של ספריית השירות.
כשנקודת קצה של שירות מחזירה דוח סטטוס עם קוד הסטטוס kStatus_Reloc, האפליקציה יכולה לקרוא ל-unresolve() כדי לנקות את המטמון ולבטל בקשות חיבור. השיטה הזו מפשטת את הטיפול בשגיאות על ידי קריאה ל-unresolve() בפעם הראשונה, ו-reset() אם הבעיה עדיין לא נפתרה.
הגרסה הזו של השיטה, שמיועדת לתאימות לאחור, לוקחת ומתעדת שגיאה, ואז קוראת ל-relocate(void) .
פרטים | |||
---|---|---|---|
פרמטרים |
|
relocate(void)
לעבור למיקום חדש
void relocate( void )
השיטה הזו משנה את מיקום המטמון של ספריית השירות.
כשנקודת קצה של שירות מחזירה דוח סטטוס עם קוד הסטטוס kStatus_Reloc, האפליקציה יכולה לקרוא ל-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(cancel) .
פרטים | |||
---|---|---|---|
פרמטרים |
|
reset(cancel)
אפס
void reset( void )
השיטה הזו מאפסת את מנהל השירות למצב הראשוני שלו.
השיטה הזו מאפסת את כל המצבים של מנהל השירות, כולל מצב התקשורת, מצב המטמון והמצב של בקשות ההתחברות שנמצאות בהמתנה.
למידע נוסף:reset(WEAVE_ERROR)
לא לפתור
void unresolve( WEAVE_ERROR aError )
השיטה הזו מבטלת את התוקף של המטמון של ספריית השירות.
השיטה הזו מגדירה את מצב המטמון של ספריית השירות כך שבבקשה הבאה מנהל השירות ינפיק שאילתה על ספריית השירות.
הגרסה הזו של השיטה, שמופיעה כאן לצורך תאימות לאחור, מקבלת ומתעדת שגיאה ואז קוראת ל-unresolve(cancel) .
פרטים | |||
---|---|---|---|
פרמטרים |
|
unresolve(pause)
לא לפתור
void unresolve( void )
השיטה הזו מבטלת את התוקף של המטמון של ספריית השירות.
השיטה הזו מגדירה את מצב המטמון של ספריית השירות כך שבבקשה הבאה מנהל השירות ינפיק שאילתה על ספריית השירות.
למידע נוסף:unresolve(WEAVE_ERROR)