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

Bu, soyut bir sınıftır.

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

WDM protokolü motor sınıfı.

Özet

Veri yönetimi varlığı (müşteri veya yayıncı) hem protokol motoru bileşenine hem de veri yöneticisi bileşenine sahiptir. Bu soyut sınıf, protokol motorunun ortak özelliklerini temsil eder.

Devralma

Doğrudan Bilinen Alt Sınıflar:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

Oluşturucular ve Yıkıcılar

ProtocolEngine(void)
~ProtocolEngine(void)

Korunan özellikler

mBindingTable[kBindingTableSize]
ProtocolEngine'de, motorun yalnızca yayın bildirimlerini almanın ötesinde herhangi bir şeyden sorumlu olacaksa muhtemelen en az bir giriş içermesi gereken bir bağlama tablosu bulunur.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

Herkese açık işlevler

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
Bağlama isteğinin başarıyla tamamlandığına dair onayı işleyin.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Bağlama isteğinin başarısız olduğuna dair onayı işleyin.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
Bilinen bir eş düğüm kimliği ve aktarım tanımlayıcısı kullanarak bağlama isteğinde bulunun.
BindRequest(const uint64_t & aPeerNodeId)
Varsayılan aktarımı kullanarak bilinen bir eşe bağlayın.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
Etkin bir Weave bağlantısı kullanarak bağlama isteğinde bulunun.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Bağlamanın başarısız olduğuna dair bir göstergeyi işleme.
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Bağlamanın tamamlanmadığını belirten bildirimleri işleme.
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
Bir bağlamanın geri alınmasını ve bağlama tablodan kaldırılmasını isteyin.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Bir bağlamanın geri alınmasını ve bağlama tablodan kaldırılmasını isteyin.

Korunan işlevler

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)

Sınıflar

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

Korunan özellikler

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine'de, motorun yalnızca yayın bildirimlerini almanın ötesinde herhangi bir şeyden sorumlu olacaksa muhtemelen en az bir giriş içermesi gereken bir bağlama tablosu bulunur.

Bağlamalar genellikle düğüm kimliğine göre dizine eklenir. Yani her motorun, belirli bir hizmet uç noktasına yalnızca tek bir bağlaması olabilir.

WDM spesifikasyonunda bu "varsayılan bağlama" kavramı vardır. Açık bir hedef sağlanmazsa mesajların gittiği yer burasıdır. Bu, çoğunlukla tek bir bağlama veya az sayıda bağlama olan çok basit cihazlarda kullanılacak ve diğer amaçlar için yalnızca oluşturulan ilk bağlama olacaktır.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Herkese açık işlevler

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Bağlama isteğinin başarıyla tamamlandığına dair onayı işleyin.

Bir bağlama tamamlandıktan sonra protokol motoru, işlem tablosundan geçer ve bu bağlamaya bağlı tüm işlemleri başlatır.

Ayrıntılar
Parametreler
[in] aBinding
Tamamlanan bağlamaya yönlendiren bir işaretçi.
İadeler
WEAVE_NO_ERROR: Başarılı olunduğunda. Aksi takdirde, işlem başlatılamayacağını belirten bir WEAVE_ERROR döndürün.

BindConfirm

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

Bağlama isteğinin başarısız olduğuna dair onayı işleyin.

Bir bağlama isteği başarısız olduğunda protokol motorunun işlem tablosundan geçmesi ve bağlamaya bağlı olarak tüm işlemlerde başarısız olması gerekir.

Ayrıntılar
Parametreler
[in] aBinding
Başarısız bağlamanın işaretçisi.
[in] aReport
Hatanın nedenini ayrıntılı olarak açıklayan StatusRapor nesnesine referans.
İadeler

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Bilinen bir eş düğüm kimliği ve aktarım tanımlayıcısı kullanarak bağlama isteğinde bulunun.

Bir eş düğüm kimliği ve aktarım spesifikasyonu sağlandığında bu istek, söz konusu eşle bağlantı oluşturur. Teklif verme işlemi YALNIZCA aktarım TCP ise ek tamamlama gerektirir. Eş için zaten bir bağlantı varsa yeniden kullanılır.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Bağlama hedefi olan eş varlığın 64 bit düğüm kimliğine referans.
[in] aTransport
Kullanılacak taşıma.
İadeler
Başarı sonucu WEAVE_NO_ERROR veya bağlama tablosu doluysa WEAVE_ERROR_NO_MEMORY. Aksi takdirde, bağlamanın başlatılamadığını yansıtan bir WEAVE_ERROR döndürün.
Şu kaynakları da inceleyin:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Varsayılan aktarımı kullanarak bilinen bir eşe bağlayın.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Bağlama hedefi olan eş varlığın 64 bit düğüm kimliğine referans.
İadeler
WEAVE_NO_ERROR: Başarılı olunduğunda. Aksi takdirde, bağlama işleminin hatasını yansıtan bir WEAVE_ERROR döndürün.

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Etkin bir Weave bağlantısı kullanarak bağlama isteğinde bulunun.

Bağlama, mevcut ve açık bir bağlantı kullanılarak da oluşturulabilir. Bu şekilde oluşturulan bağlamaların ek tamamlama gerektirmediğini unutmayın.

Ayrıntılar
Parametreler
[in] aConnection
Bağlama tarafından kullanılacak Weave bağlantısının işaretçisi.
İadeler
Başarı sonucu WEAVE_NO_ERROR veya bağlama tablosu doluysa WEAVE_ERROR_NO_MEMORY. Aksi takdirde, bağlamanın başlatılamadığını yansıtan bir hata döndürün.

IncompleteIndication

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

Bağlamanın başarısız olduğuna dair bir göstergeyi işleme.

Bir bağlama tamamlanmadığında (yani, TCP bağlaması için bağlantı kapatıldığında protokol motoru, buna bağlı olan tüm işlemlerde (ör. durum işleyicilerinin çağrılması) başarısız olmalıdır. Ayrıca, eksik gösterge, bu yöntemin eş kimliği alan alternatif biçimini uygulayan herhangi bir üst sınıf nesneye iletilir.

Ayrıntılar
Parametreler
[in] aBinding
Başarısız bağlamanın işaretçisi.
[in] aReport
Hatanın nedenini ayrıntılı bir şekilde açıklayan StatusRapor nesnesine referans.

IncompleteIndication

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

Bağlamanın tamamlanmadığını belirten bildirimleri işleme.

Bağlama hatası hakkında bilgi almak isteyen daha yüksek katmanlar, bu yöntemi kullanmalıdır. Bu yöntem, yalnızca eş kimliğini durum raporuyla birlikte iletir. Aslında bu yöntem sanal olarak geçersiz olduğundan tüm DMClient veya DMPublisher alt sınıflarının bir uygulama sağlaması gerekir.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Başarısız bağlamanın hedefi olan eş düğümün veya hizmet uç noktasının 64 bit kimliğine başvuru.
[in] aReport
Hatanın nedenini ayrıntılı bir şekilde açıklayan StatusRapor nesnesine referans.

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Bir bağlamanın geri alınmasını ve bağlama tablodan kaldırılmasını isteyin.

Bir bağlama "sınırsız" olduğunda Şu anda bu kaynağa bağlı olan tüm işlemler de kaldırılmalıdır. Bu yöntem, bu bağlama sahip olan tüm işlemleri otomatik olarak kesinleştirir.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Bağlamayı tanımlayan 64 bit düğüm kimliğine veya hizmet uç noktasına referans.
Ayrıca bkz:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Bir bağlamanın geri alınmasını ve bağlama tablodan kaldırılmasını isteyin.

Bir bağlama "sınırsız" olduğunda Şu anda bu kaynağa bağlı olan tüm işlemler de kaldırılmalıdır. Bu yöntem, bu bağlama sahip olan tüm işlemleri otomatik olarak kesinleştirir.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Bağlamayı tanımlayan 64 bit düğüm kimliğine veya hizmet uç noktasına referans.
[in] aErr
WEAVE_NO_ERROR, bu bağlantıyı kaldırma isteği için belirli bir neden yoksa hatanın nedeni belirtilecektir.
Şu makaleyi de inceleyebilirsiniz:
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Korunan işlevler

Temizle

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
)

Sonlandır

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
)