nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine

זו כיתה מופשטת.

#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>

מחלקת המנוע של פרוטוקול WDM.

סיכום

לישות לניהול נתונים, ללקוח או לבעל התוכן הדיגיטלי, יש רכיב של מנוע פרוטוקול ורכיב של מנהל נתונים. המחלקה המופשטת הזו מייצגת את התכונות הנפוצות של מנוע הפרוטוקול.

ירושה

Direct known Subclasses:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

בונים והורסים

ProtocolEngine(void)
~ProtocolEngine(void)

מאפיינים מוגנים

mBindingTable[kBindingTableSize]
ל-ProtocolEngine יש טבלה מחייבת, שאם המנוע יהיה אחראי לכל דבר מעבר לקבלת התראות משודרות, סביר להניח שהוא צריך להכיל לפחות רשומה אחת.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

תפקידים ציבוריים

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
טפל באישור שבקשת הקישור הושלמה בהצלחה.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
טיפול באישור לכך שבקשת הקישור נכשלה.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
בקשת קישור באמצעות מזהה צומת ידוע של עמית ומזהה העברה.
BindRequest(const uint64_t & aPeerNodeId)
קישור לעמית ידוע באמצעות תעבורת ברירת המחדל.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
צריך לבקש קישור באמצעות חיבור פעיל ל-Weave.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
טפל בסימן לכך שהקישור נכשל.
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
טפל באינדיקציה לכך שהקישור הפך לבלתי שלם.
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
מבקשים לבטל את הקישור ולהסיר אותו מטבלת הקישורים.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
מבקשים לבטל את הקישור ולהסיר אותו מטבלת הקישורים.

פונקציות מוגנות

Clear(void)
void
ClearBindingTable(void)
void
ClearTransactionTable(void)
void
DequeueTransaction(DMTransaction *aTransaction)
void
EnqueueTransaction(DMTransaction *aTransaction, Binding *aBinding)
EnqueueTransaction(DMTransaction *aTransaction)
FailTransactions(Binding *aBinding, StatusReport & aReport)
bool
Finalize(void)
virtual void
FinalizeBindingTable(void)
void
FinalizeTransactionTable(void)
void
FinalizeTransactions(Binding *aBinding)
void
FromExchangeCtx(ExchangeContext *aExchangeCtx)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

מחלקות

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

מאפיינים מוגנים

mBindingTable

Binding mBindingTable[kBindingTableSize]

ל-ProtocolEngine יש טבלה מחייבת, שאם המנוע יהיה אחראי לכל דבר מעבר לקבלת התראות משודרות, סביר להניח שהוא צריך להכיל לפחות רשומה אחת.

לרוב, קישורים נוספים לאינדקס לפי מזהה צומת. כלומר, לכל מנוע יכול להיות רק קישור אחד לנקודת קצה נתונה של השירות.

במפרט WDM קיים העיקרון הזה של 'קישור ברירת מחדל', שהוא המקום שאליו יועברו הודעות אם לא סופק יעד מפורש. הוא ישמש בעיקר במכשירים פשוטים מאוד עם קישור יחיד או עם מספר קטן של חיבורים, ולמטרות אחרות, רק הקישור הראשון שייווצר.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

תפקידים ציבוריים

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

טפל באישור שבקשת הקישור הושלמה בהצלחה.

לאחר השלמת הקישור, מנוע הפרוטוקול עובר בטבלת העסקאות ומתחיל עסקאות שתלויות בקישור הזה.

פרטים
פרמטרים
[in] aBinding
מצביע לקישור שהושלם.
החזרות
WEAVE_NO_ERROR בהצלחה. אחרת, מחזירים WEAVE_ERROR המשקפת חוסר יכולת לבצע עסקה.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

טיפול באישור לכך שבקשת הקישור נכשלה.

כשבקשת הקישור נכשלת, מנוע הפרוטוקול חייב לעבור על טבלת הטרנזקציות ולא להיכשל בעסקאות בהתאם לקישור.

פרטים
פרמטרים
[in] aBinding
מצביע על הקישור שנכשל.
[in] aReport
הפניה לאובייקט StatusReport המפרט את הסיבה לכשל.
החזרות

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

בקשת קישור באמצעות מזהה צומת ידוע של עמית ומזהה העברה.

בהינתן מזהה של צומת עמית ומפרט העברה, הבקשה הזו מגדירה קישור לעמית זה. הבידינג ידרוש השלמה נוספת רק אם ההעברה היא TCP. אם כבר קיים קישור לעמית, נעשה בו שימוש חוזר.

פרטים
פרמטרים
[in] aPeerNodeId
הפניה למזהה הצומת של 64 ביט של הישות העמיתה שהיא היעד המקשר.
[in] aTransport
ההעברה לשימוש.
החזרות
WEAVE_NO_ERROR אם טבלת הקישור מלאה, או WEAVE_ERROR_NO_MEMORY אם טבלת הקישור מלאה. אחרת, מוחזר WEAVE_ERROR המשקפת כשל בהפעלת הקישור.
ראו גם:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

קישור לעמית ידוע באמצעות תעבורת ברירת המחדל.

פרטים
פרמטרים
[in] aPeerNodeId
הפניה למזהה הצומת של 64 ביט של הישות העמיתה שהיא היעד המקשר.
החזרות
WEAVE_NO_ERROR בהצלחה. אחרת, יחזירו WEAVE_ERROR שמשקפת את הכשל של פעולת הקישור.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

צריך לבקש קישור באמצעות חיבור פעיל ל-Weave.

ניתן ליצור קישור גם באמצעות חיבור קיים ופתוח. שימו לב שחיבורים שנוצרו בדרך הזו לא מחייבים השלמה נוספת.

פרטים
פרמטרים
[in] aConnection
מצביע לחיבור ל-Weave שישמש את הקישור.
החזרות
WEAVE_NO_ERROR אם טבלת הקישור מלאה, או WEAVE_ERROR_NO_MEMORY אם טבלת הקישור מלאה. אחרת, תחזיר שגיאה שמשקפת כשל בהפעלת הקישור.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

טפל בסימן לכך שהקישור נכשל.

כשקישור הופך לבלתי שלם, כלומר כשסוגרים את החיבור לקישור TCP, מנגנון הפרוטוקול חייב להיכשל בכל העסקאות התלויות בו, כולל קריאה למטפלי הסטטוס שלו. בנוסף, ההתוויה החלקית מועברת לכל אובייקט של מחלקת-על שמטמיע את השיטה החלופית של השיטה הזו שמקבל מזהה עמית.

פרטים
פרמטרים
[in] aBinding
מצביע על הקישור שנכשל.
[in] aReport
הפניה לאובייקט StatusReport המפרט את הסיבה לכשל.

IncompleteIndication

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

טפל באינדיקציה לכך שהקישור הפך לבלתי שלם.

שכבות גבוהות יותר שרוצות לקבל מידע על כשל מחייב צריכות להשתמש בשיטה הזו, שפשוט מעבירה את מזהה העמית יחד עם דוח סטטוס. למעשה, מכיוון שהשיטה הזו היא חסרת תוקף וירטואלי, כל מחלקה משנית של DMClient או DMPublisher חייבת לספק הטמעה.

פרטים
פרמטרים
[in] aPeerNodeId
הפניה למזהה 64 ביט של צומת העמית או נקודת הקצה של השירות שהוא היעד של הקישור שנכשל.
[in] aReport
הפניה לאובייקט StatusReport המפרט את הסיבה לכשל.

הפעלה

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

הפעלה

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

מבקשים לבטל את הקישור ולהסיר אותו מטבלת הקישורים.

כאשר קישור 'מבוטל', יש להסיר גם עסקאות שתלויות בו כעת. שיטה זו משלימה באופן אוטומטי את כל העסקאות עם הקישור הזה.

פרטים
פרמטרים
[in] aPeerNodeId
הפניה למזהה הצומת של 64 ביט או לנקודת הקצה של השירות שמזהה את הקישור.
כדאי לעיין גם במאמר:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

מבקשים לבטל את הקישור ולהסיר אותו מטבלת הקישורים.

כאשר קישור 'מבוטל', יש להסיר גם עסקאות שתלויות בו כעת. שיטה זו משלימה באופן אוטומטי את כל העסקאות עם הקישור הזה.

פרטים
פרמטרים
[in] aPeerNodeId
הפניה למזהה הצומת של 64 ביט או לנקודת הקצה של השירות שמזהה את הקישור.
[in] aErr
WEAVE_NO_ERROR אם אין סיבה ספציפית לבקשה שאינה קשורה, אחרת סיבת השגיאה תועבר.
למידע נוסף:
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

פונקציות מוגנות

ניקוי

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

ClearTransactionTable

void ClearTransactionTable(
  void
)

DequeueTransaction

void DequeueTransaction(
  DMTransaction *aTransaction
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

FailTransactions

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

סיים

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

FinalizeTransactions

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NewBinding

Binding * NewBinding(
  void
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)