Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl:: Weben:: Profile:: DataManagement_Legacy:: ProtokollEngine

Dies ist eine abstrakte Klasse.

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

Die WDM-Protokoll-Engine-Klasse.

Zusammenfassung

Eine Datenverwaltungseinheit, ein Client oder Herausgeber, weist eine Protokollmaschinenkomponente und eine Datenverwaltungskomponente auf. Diese abstrakte Klasse repräsentiert die gemeinsamen Funktionen der Protokoll-Engine.

Erbe

Direkt bekannte Unterklassen:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

Konstruktoren und Destruktoren

ProtocolEngine (void)
~ProtocolEngine (void)

Geschützte Attribute

mBindingTable [kBindingTableSize]
Die ProtocolEngine eine Bindungstabelle , die, wenn der Motor über die bloßen Empfang von Rundfunkmeldungen für etwas verantwortlich sein wird, muss wahrscheinlich mindestens einen Eintrag enthalten.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable [kTransactionTableSize]

Öffentliche Funktionen

BindConfirm ( Binding *aBinding)
virtual WEAVE_ERROR
Behandeln Sie die Bestätigung, dass eine Bindungsanforderung erfolgreich abgeschlossen wurde.
BindConfirm ( Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Behandeln Sie die Bestätigung, dass eine Bindungsanforderung fehlgeschlagen ist.
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport)
Fordern Sie eine Bindung mit einer bekannten Peer-Knoten-ID und einem Transportbezeichner an.
BindRequest (const uint64_t & aPeerNodeId)
Binden Sie mithilfe des Standardtransports an einen bekannten Peer.
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest ( WeaveConnection *aConnection)
Fordern Sie eine Bindung mit einer aktiven Weave-Verbindung an.
IncompleteIndication ( Binding *aBinding, StatusReport & aReport)
virtual void
Behandeln eines Hinweises, dass eine Bindung fehlgeschlagen ist.
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Behandeln Sie einen Hinweis, dass eine Bindung unvollständig geworden ist.
Init ( WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest (const uint64_t & aPeerNodeId)
void
Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.

Geschützte Funktionen

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)

Klassen

nl :: Weave :: Profile :: DataManagement_Legacy :: ProtocolEngine :: DMTransaction

Geschützte Attribute

mBindingTable

Binding mBindingTable[kBindingTableSize]

Die ProtocolEngine eine Bindungstabelle , die, wenn der Motor über die bloßen Empfang von Rundfunkmeldungen für etwas verantwortlich sein wird, muss wahrscheinlich mindestens einen Eintrag enthalten.

Bindungen werden im Allgemeinen nach Knoten-ID indiziert. Dies bedeutet, dass jede Engine nur eine einzelne Bindung an einen bestimmten Dienstendpunkt haben kann.

Die WDM-Spezifikation hat diesen Begriff der "Standardbindung", die der Ort ist, an den Nachrichten gehen, wenn kein explizites Ziel angegeben wird. Dies wird meistens in sehr einfachen Geräten mit einer einzelnen Bindung oder einer geringen Anzahl von Bindungen verwendet und wird für andere Zwecke nur die erste Bindung gebildet.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Öffentliche Funktionen

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Behandeln Sie die Bestätigung, dass eine Bindungsanforderung erfolgreich abgeschlossen wurde.

Sobald eine Bindung abgeschlossen ist, durchläuft die Protokoll-Engine die Transaktionstabelle und startet alle Transaktionen, die von dieser Bindung abhängig sind.

Einzelheiten
Parameter
[in] aBinding
Ein Zeiger auf die abgeschlossene Bindung.
Kehrt zurück
WEAVE_NO_ERROR auf Erfolg. Ansonsten eine Rückkehr WEAVE_ERROR eine Unfähigkeit widerspiegelt , eine Transaktion zu starten.

BindenBestätigen

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

Behandeln Sie die Bestätigung, dass eine Bindungsanforderung fehlgeschlagen ist.

Wenn eine Bindungsanforderung fehlschlägt, muss die Protokoll-Engine die Transaktionstabelle durchlaufen und je nach Bindung alle Transaktionen fehlschlagen.

Einzelheiten
Parameter
[in] aBinding
Ein Zeiger auf die fehlgeschlagene Bindung.
[in] aReport
Ein Verweis auf ein StatusReport-Objekt, der den Grund für den Fehler detailliert beschreibt.
Kehrt zurück

Bindungsanfrage

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Fordern Sie eine Bindung mit einer bekannten Peer-Knoten-ID und einem Transportbezeichner an.

Bei einer gegebenen Peer-Knoten-ID und einer Transportspezifikation richtet diese Anforderung eine Bindung zu diesem Peer ein. Das Bieten erfordert NUR dann eine zusätzliche Vervollständigung, wenn der Transport TCP ist. Wenn bereits eine Bindung zum Peer vorhanden ist, wird sie erneut verwendet.

Einzelheiten
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID der Peer-Entität, die das Bindungsziel ist.
[in] aTransport
Der Transport zu verwenden.
Kehrt zurück
WEAVE_NO_ERROR auf Erfolg oder WEAVE_ERROR_NO_MEMORY , wenn die Bindungstabelle ist voll. Ansonsten gibt einen WEAVE_ERROR einen Fehler reflektiert , die Bindung zu initialisieren.
Siehe auch:
WeaveTransportOption

Bindungsanfrage

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Binden Sie mithilfe des Standardtransports an einen bekannten Peer.

Einzelheiten
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID der Peer-Entität, die das Bindungsziel ist.
Kehrt zurück
WEAVE_NO_ERROR auf Erfolg. Andernfalls eine Rückkehr WEAVE_ERROR das Versagen der Bindeoperation reflektiert.

Bindungsanfrage

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

Bindungsanfrage

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Fordern Sie eine Bindung mit einer aktiven Weave-Verbindung an.

Eine Bindung kann auch unter Verwendung einer bestehenden und offenen Verbindung hergestellt werden. Beachten Sie, dass auf diese Weise erstellte Bindungen keine zusätzliche Vervollständigung erfordern.

Einzelheiten
Parameter
[in] aConnection
Ein Zeiger auf eine Weave-Verbindung, die von der Bindung verwendet werden soll.
Kehrt zurück
WEAVE_NO_ERROR auf Erfolg oder WEAVE_ERROR_NO_MEMORY , wenn die Bindungstabelle ist voll. Andernfalls wird ein Fehler zurückgegeben, der einen Fehler beim Initialisieren der Bindung widerspiegelt.

UnvollständigAnzeige

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

Behandeln eines Hinweises, dass eine Bindung fehlgeschlagen ist.

Wenn eine Bindung unvollständig wird, dh wenn die Verbindung für eine TCP-Bindung geschlossen wird, muss die Protokoll-Engine alle davon abhängigen Transaktionen fehlschlagen, einschließlich des Aufrufens ihrer Statushandler. Außerdem wird die unvollständige Angabe an jedes Superklassenobjekt weitergegeben, das die alternative Form dieser Methode implementiert, die eine Peer-ID benötigt.

Einzelheiten
Parameter
[in] aBinding
Ein Zeiger auf die fehlgeschlagene Bindung.
[in] aReport
Ein Verweis auf ein StatusReport-Objekt, der den Grund für den Fehler detailliert beschreibt.

UnvollständigAnzeige

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

Behandeln Sie einen Hinweis, dass eine Bindung unvollständig geworden ist.

Höhere Schichten, die über einen Bindungsfehler informiert werden möchten, sollten diese Methode verwenden, die einfach die Peer-ID zusammen mit einem Statusbericht weitergibt. In der Tat, da diese Methode virtual void ist, jede DMClient oder DMPublisher muss Unterklasse eine Implementierung zur Verfügung stellen.

Einzelheiten
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-ID des Peer-Knotens oder Dienstendpunkts, der das Ziel der fehlgeschlagenen Bindung ist.
[in] aReport
Ein Verweis auf ein StatusReport-Objekt, der den Grund für den Fehler detailliert beschreibt.

Drin

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Drin

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtokollEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.

Wenn eine Bindung "ungebunden" ist, sollten alle Transaktionen, die derzeit davon abhängen, ebenfalls entfernt werden. Diese Methode schließt alle Transaktionen mit dieser Bindung automatisch ab.

Einzelheiten
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID oder den Dienstendpunkt, der die Bindung identifiziert.
Siehe auch:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.

Wenn eine Bindung "ungebunden" ist, sollten alle Transaktionen, die derzeit davon abhängen, ebenfalls entfernt werden. Diese Methode schließt alle Transaktionen mit dieser Bindung automatisch ab.

Einzelheiten
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID oder den Dienstendpunkt, der die Bindung identifiziert.
[in] aErr
WEAVE_NO_ERROR wenn es keinen bestimmten Grund für diese Unbind-Anfrage gibt, sonst würde die Fehlerursache weitergegeben.
Siehe auch:
UnbindRequest(const uint64_t)

~ProtokollEngine

virtual  ~ProtocolEngine(
  void
)

Geschützte Funktionen

klar

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

ClearTransactionTable

void ClearTransactionTable(
  void
)

Transaktion aus der Warteschlange entfernen

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
)

Abschließen

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

Transaktionen abschließen

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NeuBindung

Binding * NewBinding(
  void
)

Transaktion starten

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

Transaktion starten

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusAntwort

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)