nl::Weave::Profiles::DataManagement_Legacy::Binding

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

Binding sınıfı, iletişim durumunu Weave'i kullanarak bir uygulama varlığı adına yönetir.

Özet

Bir uygulama, uzaktaki bir varlıkla iletişim kurmak için Weave'i kullanmak istediğinde birçok seçenek sunulur. Binding sınıfı bu seçenekleri bir araya getirir ve kolay işlerin kolay, daha zor öğeler ise en azından ulaşılabilir olacak şekilde düzenler. Ele alınan seçenekler şunlardır:

  • bilinen bir eş düğümle tek noktaya yayın UDP iletişimi.
  • "Herhangi bir" düğüme sahip UDP yayını.
  • bilinen bir eş düğümle tek noktaya yayın WRMP iletişimi.
  • Bilinen bir eş düğümle TCP iletişimleri
  • Ayarlamak için bir hizmet yöneticisi örneği kullanarak bilinen bir hizmet uç noktasıyla yapılan TCP iletişimleri.
  • Önceden oluşturulmuş bağlantıya dayalı TCP iletişimleri.

Oluşturucular ve Yıkıcılar

Binding(void)
Binding nesneleri için varsayılan kurucudur.
~Binding(void)
Binding nesnelerinin yıkıcısı.

Herkese açık türler

@165{
  kState_Incomplete = 0,
  kState_Completing = 1,
  kState_Complete = 2
}
enum
Binding nesne durumları grubu.

Herkese açık özellikler

mAuthMode
WeaveAuthMode
Kullanılacak Weave kimlik doğrulama modu.
mConnection
Bu bağlantıda şu anda kullanımda olan Weave bağlantısının işaretçisi.
mEngine
Bu Bağlama ile ilgili ProtocolEngine nesnesine yönelik işaretçi.
mPeerNodeId
uint64_t
Bağlama hedefinin 64 bit düğüm kimliği.
mServiceMgr
Bu bağlamayı tamamlarken kullanılacak (isteğe bağlı) ServiceManager nesnesinin işaretçisi.
mState
uint8_t
Geçerli Binding nesnesinin durumu.
mTransport
uint8_t
Bu Bağlama işleminin tamamlanmasında kullanılacak aktarım.

Kamu işlevleri

CompleteConfirm(WeaveConnection *aConnection)
void
Bağlama isteğinin onayını işleme.
CompleteConfirm(StatusReport & aReport)
void
Bağlama isteğinin başarısızlığını ele alın.
CompleteConfirm(void)
void
Bağlama isteğinin onayını işleme.
CompleteRequest(ProtocolEngine *aEngine)
Bağlama işleminin tamamlanmasını isteyin.
Connect(WeaveConnection *aConnection)
Tamamlanmış bir bağlantı sağlayarak TCP bağlama işlemini tamamlayın.
Finalize(void)
void
Bir bağlamayı "tamamlayın" ve serbest bırakın.
Finalize(WEAVE_ERROR aErr)
void
Bir bağlamayı "tamamlayın" ve serbest bırakın.
Free(void)
void
Bağlama durumunu temizleyin.
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
Binding parametresinden bir ExchangeContext nesnesi oluşturun.
IncompleteIndication(StatusReport & aReport)
void
Bağlama işleminin sorununu ele alın.
Init(const uint64_t & aPeerNodeId)
Yalnızca düğüm kimliğiyle bir Binding başlatın.
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
Eş kimliğine ve aktarıma göre bir Binding nesnesini başlatın.
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
Hizmet uç noktasına Binding nesnesi başlatın.
Init(WeaveConnection *aConnection)
WeaveConnection ile bir Binding nesnesini başlatın.
IsComplete(void)
bool
Bağlama işleminin tamamlanıp tamamlanmadığını kontrol edin.
IsFree(void)
bool
Bağlamanın ücretsiz olup olmadığını kontrol edin.
UncompleteRequest(void)
void
Bağlamanın eksik olmasına neden olur.
UncompleteRequest(WEAVE_ERROR aErr)
void
Bağlamanın eksik olmasına neden olur.

Herkese açık türler

@165

 @165

Binding nesne durumları grubu.

Özellikler
kState_Complete

Bir Bağlama'nın tamamlanmış ve kullanıma hazır durumudur.

kState_Completing

Tamamlanma sürecinde olan bir Bağlayıcı'nın durumu.

kState_Incomplete

Bağlama'nın ilk (ve son) durumu.

Herkese açık özellikler

mAuthMode

WeaveAuthMode mAuthMode

Kullanılacak Weave kimlik doğrulama modu.

(YALNIZCA OKUYUN)

Bu, söz konusu bağlamaya tabi olan tüm iletişimlerde kullanılan kimlik doğrulama modudur.

mConnection

WeaveConnection * mConnection

Bu bağlantıda şu anda kullanımda olan Weave bağlantısının işaretçisi.

(SALT OKUMA)

TCP bağlamaları hemen bir bağlantıyla başlatılabilir veya tamamlama anında bir bağlantı tahsis edilebilir.

mEngine

ProtocolEngine * mEngine

Bu Bağlama ile ilgili ProtocolEngine nesnesine yönelik işaretçi.

Bağlama işlemi genellikle belirli bir protokol motoruyla ilgili olarak tamamlanır. Çoğunlukla MessageKatmanlar'a erişim yöntemi olarak kullanılır. Verilerin takibini buradan yapıyoruz.

mPeerNodeId

uint64_t mPeerNodeId

Bağlama hedefinin 64 bit düğüm kimliği.

(SALT OKUMA)

Her Binding'in, burada adlandırılmış bir hedef varlığı vardır. Weave düğüm kimliğine ek olarak bu ad, bir hizmet uç noktası olarak adlandırılabilir.

mServiceMgr

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

Bu bağlamayı tamamlarken kullanılacak (isteğe bağlı) ServiceManager nesnesinin işaretçisi.

(SALT OKUMA)

Weave hizmetine bağlanırken, başlatma sırasında Weave düğüm kimliği yerine 64 bitlik hizmet uç noktası kimliği sağlanabilir. Bu durumda, bağlamayı tamamlamak için bir ServiceManager nesnesi de gerekir. Normal TCP veya WRMP bağlamaları ServiceManager nesnesi gerektirmez.

mState

uint8_t mState

Geçerli Binding nesnesinin durumu.

Aynı anda yalnızca bir "complete" işlemi çalıştırılabilir ve her durumda, tamamlanmış bir bağlamayı tamamlamak isterseniz onay işlevi hemen çağrılır. Aşağıdaki durum değişkeni, geçerli durumu izler ve kilit görevi görür.

mTransport

uint8_t mTransport

Bu Bağlama işleminin tamamlanmasında kullanılacak aktarım.

(SALT OKUMA)

mTransport için olası değerler DMConstants.h içinde tanımlanır.

Kamu işlevleri

Bağlama

 Binding(
  void
)

Binding nesneleri için varsayılan kurucudur.

Tüm dahili durumları temizler.

CompleteConfirm

void CompleteConfirm(
  WeaveConnection *aConnection
)

Bağlama isteğinin onayını işleme.

Ayrıntılar
Parametreler
[in] aConnection
Bağlama hedefine yönelik etkin bir WeaveConnection işaretçisi.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

Bağlama isteğinin başarısızlığını ele alın.

Ayrıntılar
Parametreler
[in] aReport
Hatayı açıklayan bir StatusReport nesnesine referans.

CompleteConfirm

void CompleteConfirm(
  void
)

Bağlama isteğinin onayını işleme.

CompleteRequest

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

Bağlama işleminin tamamlanmasını isteyin.

Bağlama işleminin tamamlanması, en azından TCP gerektiren bağlamalar için ExchangeManager örneğine erişim sağlayan belirli bir ProtocolEngine nesnesiyle ilgili olarak gerçekleştirilir.

Ayrıntılar
Parametreler
[in] aEngine
Tamamlamanın gerçekleştirildiği adına bir ProtocolEngine nesnesine işaret eden öğe.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_INCORRECT_STATE
"bağlama zaten devam ediyorsa" görüntülenebilir.
WEAVE_ERROR_NO_MEMORY
Bağlantı gerekiyorsa ve herhangi bir bağlantı yoksa
İadeler
Aksi takdirde, bağlanmaya çalışırken WEAVE_ERROR döndürüldü.

Bağla

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

Tamamlanmış bir bağlantı sağlayarak TCP bağlama işlemini tamamlayın.

Yeni başlatılan bir TCP bağlama işlemi, tamamlanana kadar kullanılamaz. Normalde bu işlem, mesaj göndermek için uygulama bağlamayı kullanmaya çalıştığında isteğe bağlı olarak gerçekleştirilir ancak bir Weave bağlantısı sağlanarak açıkça tamamlanabilir.

Ayrıntılar
Parametreler
[in] aConnection
Bağlamayı tamamlamak için kullanılan WeaveConnection işaretçisi.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_INCORRECT_STATE
Bağlamanın zaten bir bağlantısı varsa.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlantı NULL ise.

Sonlandır

void Finalize(
  void
)

Bir bağlamayı "tamamlayın" ve serbest bırakın.

Bağlamalarda temizlik gerektiren durumlar (ör.bağlantı kapatma) olabilir. Bağlantı kapatma işlemi, Free() yöntemiyle basitçe ilk durumuna temizlenen durumun yanı sıra Uncomplete() yöntemi tarafından işlenir. Büyük ölçüde kolaylık sağlamak amacıyla bu yöntem her ikisini de çağırır.

Şu makaleyi de inceleyebilirsiniz:
Finalize(WEAVE_ERROR)

Sonlandır

void Finalize(
  WEAVE_ERROR aErr
)

Bir bağlamayı "tamamlayın" ve serbest bırakın.

Bağlamalarda temizlik gerektiren durumlar (ör.bağlantı kapatma) olabilir. Bağlantı kapatma işlemi, Free() yöntemiyle basitçe ilk durumuna temizlenen durumun yanı sıra Uncomplete() yöntemi tarafından işlenir. Büyük ölçüde kolaylık sağlamak amacıyla bu yöntem her ikisini de çağırır.

Ayrıntılar
Parametreler
[in] aErr
Bu hata kodu, bu isteğin nedenini belirtir. WEAVE_NO_ERROR değilse TCP bağlantısı iptal edilebilir.
Şu makaleyi de inceleyebilirsiniz:
Finalize(void)

Ücretsiz

void Free(
  void
)

Bağlama durumunu temizleyin.

Tüm bağlama durumunu koşulsuz olarak orijinal durumuna döndürün.

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Binding parametresinden bir ExchangeContext nesnesi oluşturun.

Ayrıntılar
Parametreler
[in] aExchangeMgr
Bağlam isteğinde bulunmak için exchange yöneticisine yönlendiren bir işaretçi.
[in] aAppState
Daha sonra kullanılmak üzere exchange bağlamında depolanacak bir uygulama durum nesnesine boşluk işaretçisi.
İadeler
bir ExchangeContext nesnesine işaretçi veya hata durumunda NULL.

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

Bağlama işleminin sorununu ele alın.

Bu yöntem çağrılır ve sonuç olarak, bağlama işlemi tamamlanmadan SONRA başarısız olduğunda (başarıyı belirten bir durumla CompleteConfirm() çağrıldıktan sonra) üst katman işleyicileri çağırır.

Ayrıntılar
Parametreler
[in] aReport
Nelerin yanlış gittiğini açıklayan bir StatusReport referansı.
Şu makaleyi de inceleyebilirsiniz:
CompleteConfirm(StatusReport &aReport).

Başlat

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

Yalnızca düğüm kimliğiyle bir Binding başlatın.

Bunun sonucunda, yapılandırılmış varsayılan aktarımla bir bağlama oluşturulur.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Bağlayıcı hedefin 64 bit kimliğine referans.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlayıcının belirtilmemişse olması gerekir.

Başlat

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Eş kimliğine ve aktarıma göre bir Binding nesnesini başlatın.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Bağlama hedefinin 64 bit düğüm tanımlayıcısına referans.
[in] aTransport
WeaveTransportOption'dan alınan aktarım özellikleri.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlayıcının belirtilmemişse olması gerekir.

Başlat

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

Hizmet uç noktasına Binding nesnesi başlatın.

Bu şekilde, Nest hizmetindeki belirli bir uç noktaya bağlanırsınız. Bu tür bir bağlama, yerel hizmet dizini önbelleğinin doldurulmasını veya güncellenmesini de içeren çok aşamalı bir tamamlama işlemi gerektirir. Çoğunlukla bu işlem uygulamadan gizlenir ancak işlemin daha sonra ortaya çıkan hataları, bağlamanın kullanılması (ve tamamlanması) için orijinal istekten sonra (bazen uzun bir süre sonra) normalde ilgili "onayla" geri çağırması yoluyla teslim edilebilir.

Ayrıntılar
Parametreler
[in] aServiceEpt
İlgilenilen Weave Service uç noktasının 64 bit tanımlayıcısına referans.
[in] aServiceMgr
Hizmet katmanı ararken ve ona bağlanırken kullanılacak hizmet yöneticisi örneği işaretçisi.
[in] aAuthMode
Bağlantıda kullanılacak kimlik doğrulama modu.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlayıcının belirtilmemişse olması gerekir.

Başlat

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

WeaveConnection ile bir Binding nesnesini başlatın.

Ayrıntılar
Parametreler
[in] aConnection
Bağlamaya temel olarak kullanılacak bir WeaveConnection işaretçisi.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlayıcının belirtilmemişse olması gerekir.

IsComplete

bool IsComplete(
  void
)

Bağlama işleminin tamamlanıp tamamlanmadığını kontrol edin.

Ayrıntılar
İadeler
eksiksizyse true, aksi takdirde yanlış değerini alır.
Şu makaleyi de inceleyebilirsiniz:
CompleteRequest(ProtocolEngine *aEngine)

IsFree

bool IsFree(
  void
)

Bağlamanın ücretsiz olup olmadığını kontrol edin.

Bu bağlamda "Ücretsiz", "tanımlanmış bir eş düğüm kimliğine sahip" anlamına gelir. IsFree(), "üzerinde Free() çağrısı yapılmış ve o zamandan beri kullanılmamıştır" anlamına gelir.

Ayrıntılar
İadeler
bağlama ücretsizse true (doğru), değilse false (yanlış) değerine sahiptir.

UncompleteRequest

void UncompleteRequest(
  void
)

Bağlamanın eksik olmasına neden olur.

Temel olarak bir bağlama, bu yöntem çağrıldıktan sonra "eksik" durumunda olur, ancak daha net bir ifadeyle, bağlamanın kendisinde yer almayan tüm ilgili durumların da (ör. TCP bağlantısı) temizlenmesi gerekir. Uygulamalar, hata giderme işleminin bir parçası olarak UncompleteRequest() işlevini çağırabilir.

Şu makaleyi de inceleyebilirsiniz:
UncompleteRequest(WEAVE_ERROR )

UncompleteRequest

void UncompleteRequest(
  WEAVE_ERROR aErr
)

Bağlamanın eksik olmasına neden olur.

Temel olarak bir bağlama, bu yöntem çağrıldıktan sonra "eksik" durumunda olur, ancak daha net bir ifadeyle, bağlamanın kendisinde yer almayan tüm ilgili durumların da (ör. TCP bağlantısı) temizlenmesi gerekir. Uygulamalar, hata giderme işleminin bir parçası olarak UncompleteRequest() işlevini çağırabilir.

Ayrıntılar
Parametreler
[in] aErr
WEAVE_NO_ERROR değilse mevcut bağlantı sorunsuzca kapatılmak yerine iptal edilir.
Şu makaleyi de inceleyebilirsiniz:
UncompleteRequest(void)

~Bağlayıcı

virtual  ~Binding(
  void
)

Binding nesnelerinin yıkıcısı.

Tüm dahili durumu temizler VE gerekirse açık bağlantıları kapatır.