nl:: örgü:: Profiller:: DataManagement_Legacy:: bağlama

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

Cilt sınıf Weave kullanan bir uygulama kuruluş adına iletişim durumunu yönetir.

Özet

Bir uygulama uzak bir varlıkla iletişim kurmak için Weave'i kullanmak istediğinde, çok çeşitli seçenekler vardır. Cilt kolay şeyler kolay ve daha zor şeyler az uysal altında olduğunu sınıf şekilde bu seçenekleri ve düzenler onları corrals. Kapsanan seçenekler şunları içerir:

  • bilinen bir eş düğümle tek noktaya yayın UDP iletişimi.
  • "Herhangi bir" düğümle UDP yayını.
  • bilinen bir eş düğümle tek noktaya yayın WRMP iletişimi.
  • Bilinen bir eş düğümle TCP iletişimi.
  • İşleri ayarlamak için bir hizmet yöneticisi örneği kullanarak bilinen bir hizmet uç noktasıyla TCP iletişimi.
  • Önceden kurulmuş bir bağlantıya dayalı TCP iletişimi.

Yapıcılar ve Yıkıcılar

Binding (void)
İçin varsayılan yapıcı Cilt nesneler.
~Binding (void)
Yıkıcı Bağlanma nesneleri.

Genel türler

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
Sıralama
Grubu bağlama amacı durumları.

Genel özellikler

mAuthMode
WeaveAuthMode
Kullanılacak Örgü kimlik doğrulama modu.
mConnection
Bu bağlamada şu anda kullanımda olan Örgü bağlantısına yönelik bir işaretçi.
mEngine
Bir işaretçi ProtocolEngine buna ilişkin bir nesne bağlama .
mPeerNodeId
uint64_t
Bağlama hedefinin 64 bit düğüm kimliği.
mServiceMgr
Bu bağlamayı tamamlamada kullanılacak (isteğe bağlı) ServiceManager nesnesine yönelik bir işaretçi.
mState
uint8_t
Mevcut bağlama nesne durum.
mTransport
uint8_t
Taşıma, bu tamamlanmasında kullanılacak bağlama .

Kamu işlevleri

CompleteConfirm ( WeaveConnection *aConnection)
void
Bir bağlama isteğinin onayını işleme.
CompleteConfirm ( StatusReport & aReport)
void
Bir bağlama isteğinin başarısızlığını ele alın.
CompleteConfirm (void)
void
Bir bağlama isteğinin onayını işleme.
CompleteRequest ( ProtocolEngine *aEngine)
Bir bağlamanın tamamlanmasını isteyin.
Connect ( WeaveConnection *aConnection)
Tamamlanmış bir bağlantı sağlayarak bir TCP bağlamasını tamamlayın.
Finalize (void)
void
Bir bağlamayı "tamamlanmamış" ve serbest bırakın.
Finalize ( WEAVE_ERROR aErr)
void
Bir bağlamayı "tamamlanmamış" ve serbest bırakın.
Free (void)
void
Bağlanma durumunu temizleyin.
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState)
Bir üretmek ExchangeContext bir nesneyi bağlama .
IncompleteIndication ( StatusReport & aReport)
void
Bir bağlamanın başarısızlığını ele alın.
Init (const uint64_t & aPeerNodeId)
Bir başlatma Bağlama bir nod ID ile.
Init (const uint64_t & aPeerNodeId, uint8_t aTransport)
Bir başlatma bağlama eş kimliği ve taşıma göre bir nesne.
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
Bir başlat Bağlama bir servis bitiş noktasına nesneyi.
Init ( WeaveConnection *aConnection)
Bir başlatma Bağlama bir nesneyi WeaveConnection .
IsComplete (void)
bool
Bir bağlamanın tamamlanıp tamamlanmadığını kontrol edin.
IsFree (void)
bool
Kontrol bir bağlayıcıdır ücretsizdir.
UncompleteRequest (void)
void
Bir bağlamanın eksik olmasına neden olur.
UncompleteRequest ( WEAVE_ERROR aErr)
void
Bir bağlamanın eksik olmasına neden olur.

Genel türler

@165

 @165

Grubu bağlama amacı durumları.

Özellikleri
kState_Complete

Bir devlet Bağlama o tam ve kullanıma hazırdır.

kState_Completing

Bir durumu bağlanması bu tamamlanma sürecindedir.

kState_Incomplete

Bir ilk (ve son) durum bağlama .

Genel özellikler

mAuthMode

WeaveAuthMode mAuthMode

Kullanılacak Örgü kimlik doğrulama modu.

(SADECE OKU)

Bu, bu bağlama tarafından yönetilen tüm iletişimlerde kullanılan kimlik doğrulama modudur.

mBağlantı

WeaveConnection * mConnection

Bu bağlamada şu anda kullanımda olan Örgü bağlantısına yönelik bir işaretçi.

(SADECE OKU)

TCP bağlamaları, yarasanın hemen dışında bir bağlantı ile başlatılabilir veya tamamlanma zamanında bir bağlantı tahsis edebilirler.

mMotor

ProtocolEngine * mEngine

Bir işaretçi ProtocolEngine buna ilişkin bir nesne bağlama .

Bir bağlama genellikle, çoğunlukla MessageLayer'a erişmenin bir yolu olarak kullanılan belirli bir protokol motoruna göre tamamlanır. Biz de buradan takip ediyoruz.

mPeerNodeId

uint64_t mPeerNodeId

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

(SADECE OKU)

Her Cilt burada adlı bir hedef varlık vardır. Bir Örgü düğüm kimliğine ek olarak bu, bir hizmet bitiş noktasını adlandırabilir.

mServiceMgr

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

Bu bağlamayı tamamlamada kullanılacak (isteğe bağlı) ServiceManager nesnesine yönelik bir işaretçi.

(SADECE OKU)

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

mState

uint8_t mState

Mevcut bağlama nesne durum.

Bir seferde yalnızca bir "tamamlama" işlemi çalıştırılabilir ve her durumda, tamamlanmış bir bağlamayı tamamlamayı isterseniz, hemen onay işlevini çağırır. Aşağıdaki durum değişkeni mevcut durumu izler ve bir kilitleme görevi görür.

mUlaşım

uint8_t mTransport

Taşıma, bu tamamlanmasında kullanılacak bağlama .

(SADECE OKU)

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

Kamu işlevleri

bağlama

 Binding(
  void
)

İçin varsayılan yapıcı Cilt nesneler.

Tüm dahili durumu temizler.

TamamlaOnayla

void CompleteConfirm(
  WeaveConnection *aConnection
)

Bir bağlama isteğinin onayını işleme.

Ayrıntılar
parametreler
[in] aConnection
Etkin bir gösterici WeaveConnection bağlayıcı hedefe.

TamamlaOnayla

void CompleteConfirm(
  StatusReport & aReport
)

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

Ayrıntılar
parametreler
[in] aReport
Hatayı açıklayan bir StatusReport nesnesine başvuru.

TamamlaOnayla

void CompleteConfirm(
  void
)

Bir bağlama isteğinin onayını işleme.

İsteği Tamamla

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

Bir bağlamanın tamamlanmasını isteyin.

Bir bağlanma tamamlanması en azından belirli bir göre gerçekleştirilen TCP gerektiren bağlamaları için, bir ProtocolEngine bir ExchangeManager örneğine erişim sağlayan nesne.

Ayrıntılar
parametreler
[in] aEngine
Bir bir gösterici ProtocolEngine tamamlama yapılmakta olduğu adına nesne.
Dönüş Değerleri
WEAVE_NO_ERROR
Başarı üzerine.
WEAVE_ERROR_INCORRECT_STATE
bağlama zaten tamamlanmışsa.
WEAVE_ERROR_NO_MEMORY
Bir bağlantı gerekliyse ve hiçbiri mevcut değilse
İadeler
Aksi takdirde, herhangi WEAVE_ERROR bağlanmaya çalışılırken döndü.

Bağlan

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

Tamamlanmış bir bağlantı sağlayarak bir TCP bağlamasını tamamlayın.

Yeni başlatılan bir TCP bağlaması, tamamlanana kadar kullanılamaz. Normalde bu, uygulama mesaj göndermek için bağlamayı kullanmaya çalıştığında talep üzerine yapılır, ancak bir Weave bağlantısı sağlanarak da açık bir şekilde tamamlanabilir.

Ayrıntılar
parametreler
[in] aConnection
Bir bir gösterici WeaveConnection bağlama tamamlamak için kullanılan.
Dönüş Değerleri
WEAVE_NO_ERROR
Başarı üzerine.
WEAVE_ERROR_INCORRECT_STATE
Bağlamanın zaten bir bağlantısı varsa.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlantı NULL ise.

Sonuçlandırmak

void Finalize(
  void
)

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

Bağlama sadece ile başlangıç durumuna temizlenir durumuna ek olarak tam olmayan () metodu ile işlenir bağlantı kapama, örneğin, temizleme gerektiren durum olabilir Ücretsiz () yöntemi. Bu yöntem, büyük ölçüde kolaylık sağlamak için her ikisini de çağırır.

Ayrıca bakınız:
Sonlandır(WEAVE_ERROR)

Sonuçlandırmak

void Finalize(
  WEAVE_ERROR aErr
)

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

Bağlama sadece ile başlangıç durumuna temizlenir durumuna ek olarak tam olmayan () metodu ile işlenir bağlantı kapama, örneğin, temizleme gerektiren durum olabilir Ücretsiz () yöntemi. Bu yöntem, büyük ölçüde kolaylık sağlamak için her ikisini de çağırır.

Ayrıntılar
parametreler
[in] aErr
Bu hata kodu, bu isteğin nedenini gösterir. WEAVE_NO_ERROR değilse, TCP bağlantısı iptal edilebilir.
Ayrıca bakınız:
Sonlandır(void)

Bedava

void Free(
  void
)

Bağlanma durumunu temizleyin.

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

GetExchangeCtx

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

Bir üretmek ExchangeContext bir nesneyi bağlama .

Ayrıntılar
parametreler
[in] aExchangeMgr
Bağlam istemek için değişim yöneticisine yönelik bir işaretçi.
[in] aAppState
Daha sonra kullanılmak üzere değişim bağlamında depolanacak bir uygulama durumu nesnesine yönelik geçersiz bir işaretçi.
İadeler
Bir bir işaretçi ExchangeContext başarısızlık nesne veya null.

Eksik Gösterge

void IncompleteIndication(
  StatusReport & aReport
)

Bir bağlamanın başarısızlığını ele alın.

Bu yöntem, bu da, çağrılır ve bağlayıcı başlatır yüksek seviyede yükleyiciler sonra, örneğin tamamlandıktan sonra başarısız () CompleteConfirm bir durum gösteren başarı ile çağrılan edilmiştir.

Ayrıntılar
parametreler
[in] aReport
Neyin yanlış gittiğini açıklayan bir Durum Raporuna referans.
Ayrıca bakınız:
CompleteConfirm (StatusReport ve aReport) .

İçinde

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

Bir başlatma Bağlama bir nod ID ile.

Bu, yapılandırılmış varsayılan aktarımla bir bağlama ile sonuçlanır.

Ayrıntılar
parametreler
[in] aPeerNodeId
Bağlama hedefinin 64 bit kimliğine bir başvuru.
Dönüş Değerleri
WEAVE_NO_ERROR
Başarı üzerine.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlama yetersiz belirtilmişse.

İçinde

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Bir başlatma bağlama eş kimliği ve taşıma göre bir nesne.

Ayrıntılar
parametreler
[in] aPeerNodeId
Bağlama hedefinin 64 bit düğüm tanımlayıcısına bir başvuru.
[in] aTransport
WeaveTransportOption'dan taşıma spesifikasyonu.
Dönüş Değerleri
WEAVE_NO_ERROR
Başarı üzerine.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlama yetersiz belirtilmişse.

İçinde

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

Bir başlat Bağlama bir servis bitiş noktasına nesneyi.

Nest hizmetinde belirli bir uç noktaya bu şekilde bağlanırsınız. Bu tür bir bağlama, yerel hizmet dizini önbelleğini doldurmayı veya güncellemeyi içerebilen çok aşamalı bir tamamlama süreci gerektirir. Çoğunlukla, bu işlem uygulamadan gizlenir, ancak bu, işlemde daha sonra ortaya çıkan hataların, normalde ilgili "onayla" geri arama yoluyla, orijinal kullanım isteğinden (ve tamamlandıktan sonra) - bazen çok sonra - iletilebileceği anlamına gelir bağlayıcı.

Ayrıntılar
parametreler
[in] aServiceEpt
İlgilenilen Weave Hizmeti uç noktası için 64 bitlik tanımlayıcıya bir başvuru.
[in] aServiceMgr
Bir hizmet katmanını ararken ve ona bağlanırken kullanılacak hizmet yöneticisi örneğine yönelik bir işaretçi.
[in] aAuthMode
Bağlanırken kullanılacak kimlik doğrulama modu.
Dönüş Değerleri
WEAVE_NO_ERROR
Başarı üzerine.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlama yetersiz belirtilmişse.

İçinde

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Bir başlatma Bağlama bir nesneyi WeaveConnection .

Ayrıntılar
parametreler
[in] aConnection
Bir bir gösterici WeaveConnection bağlanması için bir temel olarak kullanmak üzere ..
Dönüş Değerleri
WEAVE_NO_ERROR
Başarı üzerine.
WEAVE_ERROR_INVALID_ARGUMENT
Bağlama yetersiz belirtilmişse.

Tamamlandı

bool IsComplete(
  void
)

Bir bağlamanın tamamlanıp tamamlanmadığını kontrol edin.

Ayrıntılar
İadeler
tam ise true, aksi takdirde false.
Ayrıca bakınız:
CompleteRequest(ProtocolEngine *aEngine)

Bedava

bool IsFree(
  void
)

Kontrol bir bağlayıcıdır ücretsizdir.

Bu bağlamda "Ücretsiz", basitçe "tanımlanmış bir eş düğüm kimliğine sahip" anlamına gelir. IsFree () anlam olarak düşünülmelidir "yönünde çağrıda etti Free () ve o zamandan beri kullanılmamıştır".

Ayrıntılar
İadeler
bağlama serbestse true , aksi takdirde false .

Tamamlanmamış İstek

void UncompleteRequest(
  void
)

Bir bağlamanın eksik olmasına neden olur.

Temel olarak, bir bağlama, bu yöntem üzerinde çağrıldıktan sonra "eksik" durumda olacaktır, ancak daha incelikli olarak, bağlamanın kendisinde bulunmayan ilgili herhangi bir durum, örneğin TCP bağlantısı da temizlenmelidir. Uygulamalar çağırma düşünebilir UncompleteRequest () hata temizleme parçası olarak kullanılabilir.

Ayrıca bakınız:
TamamlanmamışTalep(WEAVE_ERROR )

Tamamlanmamış İstek

void UncompleteRequest(
  WEAVE_ERROR aErr
)

Bir bağlamanın eksik olmasına neden olur.

Temel olarak, bir bağlama, bu yöntem üzerinde çağrıldıktan sonra "eksik" durumda olacaktır, ancak daha incelikli olarak, bağlamanın kendisinde bulunmayan ilgili herhangi bir durum, örneğin TCP bağlantısı da temizlenmelidir. Uygulamalar çağırma düşünebilir UncompleteRequest () hata temizleme parçası olarak kullanılabilir.

Ayrıntılar
parametreler
[in] aErr
WEAVE_NO_ERROR değilse, varsa mevcut bağlantı düzgün bir şekilde kapatılmak yerine iptal edilir.
Ayrıca bakınız:
Tamamlanmamış İstek(void)

~Bağlayıcı

virtual  ~Binding(
  void
)

Yıkıcı Bağlanma nesneleri.

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