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

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

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

Özet

Bir uygulama, uzak bir varlıkla iletişim kurmak için Weave'i kullanmak istediğinde çeşitli seçenekler mevcuttur. Binding sınıfı bu seçenekleri bir araya getirir ve kolay öğeleri kolay, zor işleri ise en azından göze çarpacak şekilde düzenler. Ele alınan seçenekler şunlardır:

  • bilinen bir eş düğümle tek yayın UDP iletişimi.
  • "any" ifadesini içeren UDP yayını düğüm.
  • bilinen bir eş düğümle tek yayın WRMP iletişimi.
  • Bilinen bir eş düğümle TCP iletişimleri.
  • Kurulum için hizmet yöneticisi örneği kullanan, bilinen bir hizmet uç noktasıyla TCP iletişimleri.
  • Önceden kurulmuş bir bağlantıya dayalı TCP iletişimleri.

Oluşturucular ve Yıkıcılar

Binding(void)
Binding nesneleri için varsayılan oluşturucu.
~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ğlamada kullanılmakta olan Weave bağlantısına işaret eder.
mEngine
Bu Binding ile ilgili ProtocolEngine nesnesine işaret eden bir işaret.
mPeerNodeId
uint64_t
Bağlama hedefinin 64 bit düğüm kimliği.
mServiceMgr
Bu bağlamanın tamamlanmasında kullanılacak (isteğe bağlı) ServiceManager nesnesine işaret eden bir işaret.
mState
uint8_t
Binding nesnesinin durumu.
mTransport
uint8_t
Bu Bağlama'nın tamamlanmasında kullanılacak taşıma.

Herkese açık işlevler

CompleteConfirm(WeaveConnection *aConnection)
void
Bağlama isteği onayını işleme.
CompleteConfirm(StatusReport & aReport)
void
Bağlama isteğinin hatasını işleme.
CompleteConfirm(void)
void
Bağlama isteği onayını işleme.
CompleteRequest(ProtocolEngine *aEngine)
Bağlamanın tamamlanmasını isteyin.
Connect(WeaveConnection *aConnection)
Tamamlanmış bir bağlantı sağlayarak TCP bağlama işlemini tamamlayın.
Finalize(void)
void
"Tamamlanmadı" serbest bırakır.
Finalize(WEAVE_ERROR aErr)
void
"Tamamlanmadı" serbest bırakır.
Free(void)
void
Bağlama durumunu temizleyin.
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
Binding'den bir ExchangeContext nesnesi oluşturun.
IncompleteIndication(StatusReport & aReport)
void
Bağlama hatasını giderme.
Init(const uint64_t & aPeerNodeId)
Yalnızca düğüm kimliği ile 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)
Bir hizmet uç noktasına Binding nesnesini başlatın.
Init(WeaveConnection *aConnection)
Bir WeaveConnection ile Binding nesnesini başlatın.
IsComplete(void)
bool
Bağlamanın tamamlanıp tamamlanmadığını kontrol edin.
IsFree(void)
bool
Çek, ücret ödemeden geçerlidir.
UncompleteRequest(void)
void
Bağlamanın tamamlanmamasına neden olur.
UncompleteRequest(WEAVE_ERROR aErr)
void
Bağlamanın tamamlanmamasına neden olur.

Herkese açık türler

@165

 @165

Binding nesne durumları grubu.

Özellikler
kState_Complete

Tamamlanmış ve kullanıma hazır bir Binding durumu.

kState_Completing

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

kState_Incomplete

Bağlamanın ilk (ve son) durumu.

Herkese açık özellikler

mAuthMode

WeaveAuthMode mAuthMode

Kullanılacak Weave kimlik doğrulama modu.

(READ_ONLY)

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

mConnection

WeaveConnection * mConnection

Bu bağlamada kullanılmakta olan Weave bağlantısına işaret eden bir işaret.

(SALT OKUNUR)

TCP bağlamaları, hemen bir bağlantıyla başlatılabilir veya tamamlanma sırasında bir bağlantı ayırabilir.

mEngine

ProtocolEngine * mEngine

Bu Binding ile ilgili ProtocolEngine nesnesine işaret eden bir işaret.

Bağlama işlemi genellikle belirli bir protokol motoruyla ilgili olarak tamamlanır ve bu altyapı çoğunlukla MessageKatman'a erişmenin bir yolu olarak kullanılır. Bu şekilde işleri takip ediyoruz.

mPeerNodeId

uint64_t mPeerNodeId

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

(SALT OKUNUR)

Her Bağlama'nın burada adlandırılmış bir hedef varlığı vardır. Weave düğüm kimliğine ek olarak bir hizmet uç noktası da adlandırılabilir.

mServiceMgr

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

Bu bağlamanın tamamlanmasında kullanılacak (isteğe bağlı) ServiceManager nesnesine işaret eden bir işaret.

(SALT OKUNUR)

Weave hizmetine bağlanırken başlatma sırasında Weave düğüm kimliği yerine 64 bit hizmet uç nokta kimliği sağlanabilir. Bu durumda, bağlamanın tamamlanması için bir ServiceManager nesnesi de gerekir. Normal TCP veya WRMP bağlamaları için ServiceManager nesnesi gerekmez.

mState

uint8_t mState

Binding nesnesinin durumu.

Yalnızca bir "tamamlandı" işlemi, her seferinde çalışabilir ve her durumda, tamamlanmış bir bağlamanın tamamlanmasını istediğinizde, onaylama işlevini hemen çağırır. Aşağıdaki durum değişkeni, geçerli durumu izler ve kilitlenme gibi çalışır.

mTransport

uint8_t mTransport

Bu Bağlama'nın tamamlanmasında kullanılacak taşıma.

(SALT OKUNUR)

mTransport için olası değerler DMConstants.h içinde tanımlanmıştır.

Herkese açık işlevler

Bağlama

 Binding(
  void
)

Binding nesneleri için varsayılan oluşturucu.

Tüm dahili durumu temizler.

CompleteConfirm

void CompleteConfirm(
  WeaveConnection *aConnection
)

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

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

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

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

Ayrıntılar
Parametreler
[in] aReport
Hatayı açıklayan StatusRapor nesnesine başvuru.

CompleteConfirm

void CompleteConfirm(
  void
)

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

CompleteRequest

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

Bağlamanın tamamlanmasını isteyin.

Bağlamanın tamamlanması, en azından TCP gerektiren bağlamalar için yapılır. Bu işlem, ExchangeManager örneğine erişim sağlayan belirli bir ProtocolEngine nesnesine göre gerçekleştirilir.

Ayrıntılar
Parametreler
[in] aEngine
Adına tamamlamanın gerçekleştirildiği bir ProtocolEngine nesnesine işaret eden.
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
WEAVE_ERROR_INCORRECT_STATE
.
WEAVE_ERROR_NO_MEMORY
Bağlantı gerekiyorsa ve kullanılabilir bağlantı yoksa
İadeler
Aksi takdirde, bağlanmaya çalışılırken WEAVE_ERROR döndürülür.

Bağlan

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ğlaması, tamamlanana kadar kullanılamaz. Normalde bu işlem, uygulama mesaj göndermek için bağlamadan yararlanmaya çalıştığında talep üzerine yapılır ancak bir Weave bağlantısı sağlanarak da açıkça tamamlanabilir.

Ayrıntılar
Parametreler
[in] aConnection
Bağlamayı tamamlamak için kullanılan bir WeaveConnection işaretçisi.
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
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
)

"Tamamlanmadı" serbest bırakır.

Bağlamalarda temizleme gerektiren durumlar olabilir (ör. Free() yöntemi tarafından başlangıç durumuna alınan duruma ek olarak Uncomplete() yöntemi tarafından işlenen bağlantı kapatma. Bu yöntem, büyük ölçüde kolaylık sağlamak amacıyla her ikisini de çağırır.

Şu kaynakları da inceleyin:
Sonlandır(WEAVE_ERROR)

Sonlandır

void Finalize(
  WEAVE_ERROR aErr
)

"Tamamlanmadı" serbest bırakır.

Bağlamalarda temizleme gerektiren durumlar olabilir (ör. Free() yöntemi tarafından başlangıç durumuna alınan duruma ek olarak Uncomplete() yöntemi tarafından işlenen bağlantı kapatma. Bu yöntem, büyük ölçüde kolaylık sağlamak amacıyla her ikisini de çağırır.

Ayrıntılar
Parametreler
[in] aErr
Bu hata kodu, söz konusu isteğin nedenini belirtir. WEAVE_NO_ERROR değilse TCP bağlantısı iptal edilebilir.
Şu kaynakları da inceleyin:
Kesinleştir(geçersiz)

Ücretsiz

void Free(
  void
)

Bağlama durumunu temizleyin.

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

GetExchangeCtx

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

Binding'den bir ExchangeContext nesnesi oluşturun.

Ayrıntılar
Parametreler
[in] aExchangeMgr
Bağlam isteğinde bulunulacak exchange yöneticisi işaretçisi.
[in] aAppState
Daha sonra kullanılmak üzere exchange bağlamında depolanacak uygulama durumu nesnesine yönelik geçersiz işaretçi.
İadeler
ExchangeContext nesnesine işaret eden bir işaretçi veya hata durumunda NULL ifadesi.

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

Bağlama hatasını giderme.

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

Ayrıntılar
Parametreler
[in] aReport
Neyin yanlış gittiğini açıklayan bir Durum Raporu'na atıfta bulunma.
Şu makaleyi de inceleyebilirsiniz:
CompleteConfirm(StatusReport &amp;aReport).

Init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

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

Bu işlem, yapılandırılmış varsayılan aktarımla bir bağlantı oluşturur.

Ayrıntılar
Parametreler
[in] aPeerNodeId
Bağlama hedefinin 64 bit kimliğine referans.
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlamanın eksik belirtildiği durumlarda.

Init

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 başvuru.
[in] aTransport
WeaveTransportOption tarafından sağlanan taşıma spesifikasyonu.
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlamanın eksik belirtildiği durumlarda.

Init

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

Bir hizmet uç noktasına Binding nesnesini başlatın.

Nest hizmetindeki belirli bir uç noktaya bu şekilde bağlanırsınız. Bu tür bir bağlama, yerel hizmet dizini önbelleğinin doldurulmasını veya güncellenmesini içerebilecek çok aşamalı bir tamamlama işlemi gerektirir. Çoğunlukla bu işlem uygulamadan gizlenmiştir ancak bu, işlemin ilerleyen aşamalarında ortaya çıkan hataların, genellikle ilgili "onayla" düğmesiyle teslim edilebileceği anlamına gelir. bağlamayı kullanması (ve tamamlaması) için orijinal istekten sonra (bazen uzun süre sonra) geri çağırma işlemini gerçekleştirin.

Ayrıntılar
Parametreler
[in] aServiceEpt
İlgili Weave Service uç noktasının 64 bit tanımlayıcısına başvuru.
[in] aServiceMgr
Hizmet katmanını arama ve ona bağlanmada kullanılacak hizmet yöneticisi örneğinin işaretçisi.
[in] aAuthMode
Bağlantıda kullanılacak kimlik doğrulama modu.
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlamanın eksik belirtildiği durumlarda.

Init

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Bir WeaveConnection ile Binding nesnesini başlatın.

Ayrıntılar
Parametreler
[in] aConnection
Bağlamaya temel olarak kullanılacak bir WeaveConnection işaretçisi.
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlamanın eksik belirtildiği durumlarda.

IsComplete

bool IsComplete(
  void
)

Bağlamanın tamamlanıp tamamlanmadığını kontrol edin.

Ayrıntılar
İadeler
doğru, tam değilse false (yanlış) değerini alır.
Şu kaynakları da inceleyin:
CompleteRequest(ProtocolEngine *aEngine)

IsFree

bool IsFree(
  void
)

Çek, ücret ödemeden geçerlidir.

"Ücretsiz" bu bağlamda sadece "tanımlanmış bir eş düğüme sahip" Kimliği"ni seçin. IsFree() should be thought of as meaning &quot;has had Free() ve o zamandan beri kullanılmadı".

Ayrıntılar
İadeler
bağlama ücretsizse true, değilse false (yanlış) değerini alır.

UncompleteRequest

void UncompleteRequest(
  void
)

Bağlamanın tamamlanmamasına neden olur.

Temel olarak bir bağlama "eksik" durumda belirtiliyor.Daha açık bir şekilde belirtmek gerekirse bağlamanın kendisinde yer almayan tüm alakalı durumları (ör. TCP bağlantısı da temizlenmelidir. Uygulamalar, hata içeren temizleme işleminin bir parçası olarak UncompleteRequest() işlevini çağırmayı düşünebilir.

Şu kaynakları da inceleyin:
UncompleteRequest(WEAVE_ERROR )

UncompleteRequest

void UncompleteRequest(
  WEAVE_ERROR aErr
)

Bağlamanın tamamlanmamasına neden olur.

Temel olarak bir bağlama "eksik" durumda belirtiliyor.Daha açık bir şekilde belirtmek gerekirse bağlamanın kendisinde yer almayan tüm alakalı durumları (ör. TCP bağlantısı da temizlenmelidir. Uygulamalar, hata içeren temizleme işleminin bir parçası olarak UncompleteRequest() işlevini çağırmayı düşünebilir.

Ayrıntılar
Parametreler
[in] aErr
WEAVE_NO_ERROR değilse mevcut bağlantı (varsa) kontrollü bir şekilde kapatmak yerine iptal edilir.
Şu kaynakları da inceleyin:
UncompleteRequest(void)

~Bağlama

virtual  ~Binding(
  void
)

Binding nesnelerinin yıkıcısı.

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