nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
Weave hizmet dizini için yönetici nesnesi.
Özet
Weave hizmet yöneticisi, dizin hizmetindeki uygulamalar için ana arayüzdür. Bu nedenle, bir hizmet uç noktasıyla ilişkili dizin girişini arama, orada bulunan bir veya daha fazla ana makine adı üzerinde DNS araması yapma, bağlanmaya çalışma, bağlantıyı güvenli hale getirme ve benzeri işlemlerde karşılaşılan sorunları gizler. Ayrıca hizmet dizini bilgilerinin önbelleğini de yönetebilir.
Oluşturucular ve Yıkıcılar |
|
---|---|
WeaveServiceManager(void)
Bu yöntem, WeaveServiceManager örneğini başlatır.
|
|
~WeaveServiceManager(void)
Bu yöntem, WeaveServiceManager örneğini yok eder.
|
Herkese açık türler |
|
---|---|
@303{
|
enum |
OnConnectBegin)(struct ServiceConnectBeginArgs &args)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBeginvoid(*
Bağlantı kurulmadan hemen önce yapılan bir uygulama geri çağırması. |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryBeginvoid(*
Giden bir hizmet dizini sorgusunun zamanını işaretlemek için uygulama geri çağırma işlevi. |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfovoid(*
Bir hizmet dizini yanıtından zaman değerlerini iletmek için uygulama geri çağırma işlevi. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor Kök dizin bilgileri için bir erişim işlevi. |
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandlervoid(*
Hata ve durum koşulları için bir işleyici. |
Herkese açık işlevler |
|
---|---|
SetConnectBeginCallback(OnConnectBegin aConnectBegin)
|
void
Bağlantı kurulmadan hemen önce çağrılacak bir geri çağırma işlevi ayarlayın.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
Bu yöntem, bağlantı isteğini iptal eder.
|
clearCache(void)
|
void
Durum, kServiceMgrState_resolved terminal durumundaysa yöneticinin durumunu ve önbelleğini temizler. Bu, Hizmet Dizini uç noktasından yanıt alındığı anlamına gelir.
|
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
|
Bu yöntem, bir Weave hizmetine bağlanma isteğinde bulunur.
|
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
|
Bu yöntem, hizmet yöneticisi nesnesini başlatır.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
Bu yöntem, bir hizmet uç noktası için dizin bilgilerini arar.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
Bu yöntem, bir hizmet uç noktası için dizin bilgilerini arar.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
Bu yöntem, ilişkili Weave exchange bağlamı tarafından bildirilen bağlantı kapalı etkinliğini işler.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet uç noktası sorgu işlemi için tamamlanan bağlanma etkinliğini işler.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
Bu yöntem, dizin hizmetiyle ileti dizisindeki tüm yanıt mesajlarını işler.
|
onResponseTimeout(void)
|
void
Bu yöntem, dizin hizmetinden yanıt alınamadığı zaman aşımı etkinliğini işler.
|
relocate(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet dizini önbelleğini taşır.
|
relocate(void)
|
void
Bu yöntem, hizmet dizini önbelleğini taşır.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
Ana makine adının ve bağlantı noktası kimliğinin geçersiz kılma dizin girişini dizin listesinin başına ekleyin.
|
reset(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet yöneticisini ilk durumuna sıfırlar.
|
reset(void)
|
void
Bu yöntem, hizmet yöneticisini ilk durumuna sıfırlar.
|
unresolve(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet dizini önbelleğini geçersiz kılar.
|
unresolve(void)
|
void
Bu yöntem, hizmet dizini önbelleğini geçersiz kılar.
|
Sınıflar |
|
---|---|
nl:: |
Bu sınıf, hizmet yöneticisi tarafından yönetilen tek bir işlemi temsil eder. |
Herkese açık türler
@303
@303
Özellikler | |
---|---|
kWeave_DefaultSendTimeout
|
Exchange bağlamı zaman aşımına uğramadan önce dizin sorgusu için yanıtın alınması gereken milisaniye sayısı. |
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
Bağlantı kurulmadan hemen önce yapılan bir uygulama geri çağırma.
Bu geri çağırma, hizmet bağlantısı kurulurken #WeaveConnection::Connect() işlevine iletilen bağımsız değişkenleri gözlemlemek ve isteğe bağlı olarak değiştirmek için uygulamalar tarafından kullanılabilir. Bu geri çağırma işlevi, hem hedef hizmet uç noktasına hem de dizin araması yapılması gerektiğinde Hizmet Dizini uç noktasına bağlantı için çağrılır.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
Giden bir hizmet dizini sorgusunun zamanını işaretlemek için uygulama geri çağırma işlevi.
Bu, hizmet uç noktası sorgu isteği göndermek üzere olduğumuzda çağrılır. Bu, mesaj uçuş süresini telafi etmek için OnServiceEndpointQueryEnd ile eşleştirmek üzere kullanılır.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
Bir hizmet dizini yanıtından zaman değerlerini iletmek için uygulama geri çağırma işlevi.
Bu, hizmet dizini sorgu yanıtından saat bilgisi aldığımızda çağrılır. Bu geri çağırma işleminin yalnızca yanıt başarıyla ayrıştırıldığında ve saat bilgisi dahil edildiğinde gerçekleşeceğini unutmayın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Kök dizin bilgileri için bir erişim işlevi.
Bir yerden başlamanız gerekir. Hizmet dizininde, diğer her şeye erişmek için kullanabileceğiniz bir sunucunun adresini içeren bir stub diziniyle başlamanız gerekir. Bu bilgilerin kullanımı ve kaynağı cihazdan cihaza değişebileceğinden, burada bir erişim sağlayıcı geri çağırma işlevi sağlarız.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
WEAVE_NO_ERROR belirtir, aksi takdirde yükleme işlemi iptal edilir.
|
StatusHandler
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
Hata ve durum koşulları için işleyici.
Hizmet yöneticisi kullanıcısı, bağlantı isteği yürütmeyle ilgili sorunlardan iki yoldan biriyle haberdar edilebilir. Hizmetten bir durum raporu veya dahili olarak oluşturulan bir WEAVE_ERROR alabilir. Her iki durumda da bilgiler bu geri arama yoluyla gelir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
Herkese açık işlevler
SetConnectBeginCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
Bağlantı kurulmadan hemen önce çağrılacak bir geri çağırma işlevi ayarlayın.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
WeaveServiceManager
WeaveServiceManager( void )
Bu yöntem, WeaveServiceManager örneğini başlatır.
Bu örneği daha da başlatmak için init() işlevinin çağrılması gerektiğini unutmayın.
iptal
void cancel( uint64_t aServiceEp, void *aAppState )
Bu yöntem, bağlantı isteğini iptal eder.
Bu yöntem, istek sırasında tanımlayıcı olarak iletilen hizmet uç noktası kimliği ve uygulama durumu nesnesi verildiğinde bir bağlantı isteğini iptal eder. Bu son bağlantı isteğiyse bu yöntem, bekleyen tüm hizmet dizini bağlantı durumlarını da temizler.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
clearCache
void clearCache( void )
Durum, kServiceMgrState_resolved terminal durumundaysa yöneticinin durumunu ve önbelleğini temizler. Bu, Hizmet Dizini uç noktasından yanıt alındığı anlamına gelir.
connect
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
Bu yöntem, bir Weave hizmetine bağlanma isteğinde bulunur.
Bu, üst düzey bağlantı görüşmesidir. Temel olarak, bir hizmet uç noktası ve kimlik doğrulama modu verildiğinde Weave hizmetine güvenli bir bağlantı oluşturur veya bunu yapmaya çalışırken başarısız olur.
Bu yöntem yalnızca init() başarılı bir şekilde çağrıldıktan sonra çağrılabilir ve bağlantı isteği cancel() ile iptal edilebilir.
Bu yöntem, yerel önbellek varsayılan sağlanan verilerden veya dizin hizmetine yapılan bir geziden alınan verilerle dolmadan önce çağrılabilir. Servis yöneticisi, önbelleğe alınan içerik belirlenmeden önce isteği sıraya ekler.
Ayrıntılar | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||||
İadeler |
Başarıda WEAVE_NO_ERROR; aksi takdirde ilgili hata kodu.
|
init
WEAVE_ERROR init( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin )
Bu yöntem, hizmet yöneticisi nesnesini başlatır.
Bir hizmet yöneticisi nesnesinin kullanılabilmesi için ilk kullanıma hazırlanması gerekir. Bu yöntem başarılı bir şekilde çağrıldıktan sonra istemciler connect(), lookup() ve diğer yöntemleri çağırmaya başlayabilir.
Ayrıntılar | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||||||
İadeler |
İşlev bağımsız değişkeni geçersizse WEAVE_ERROR_INVALID_ARGUMENT. Aksi takdirde WEAVE_NO_ERROR.
|
lookup
WEAVE_ERROR lookup( uint64_t aServiceEp, HostPortList *outHostPortList )
Bu yöntem, bir hizmet uç noktası için dizin bilgilerini arar.
Hizmet dizini çözümlendiyse (yani başarılı bir connect() işlemi varsa) bu yöntem sağlanan HostPortList nesnesini doldurur.
Not: HostPortList, WeaveServiceManager nesnesine bağlıdır. Bu nesne, hizmet dizini önbelleği temizlenene veya başka bir hizmet dizini araması yapılana kadar geçerli kalır.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen değerler |
|
lookup
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
Bu yöntem, bir hizmet uç noktası için dizin bilgilerini arar.
Hizmet dizini çözüldüyse (yani başarılı bir connect() işlemi gerçekleştirildiyse) bu yöntem, bir hizmet uç noktası tanımlayıcısı verildiğinde bir dizin girişi döndürür.
Bu yöntem, hizmet dizininin dahili uygulamasının ayrıntılarını gösterir. Uygulamalar, bu yöntemin HostPortList oluşturan varyantını kullanmayı tercih etmelidir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Değerleri Döndür |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
Bu yöntem, ilişkili Weave exchange bağlamı tarafından bildirilen bağlantı kapalı etkinliğini işler.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
Bu yöntem, hizmet uç noktası sorgu işlemi için tamamlanan bağlanma etkinliğini işler.
Birkaç olasılık vardır. Öncelikle, bağlantı başarısız olmuş olabilir. Bu durumda görüşmemizi sonlandırabiliriz. Aksi takdirde bağlantı aslında tamamlanır ve bir exchange bağlamı açıp dizin sorgusu göndermek isteriz.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
Bu yöntem, dizin hizmetiyle ileti dizisindeki tüm yanıt mesajlarını işler.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
onResponseTimeout
void onResponseTimeout( void )
Bu yöntem, dizin hizmetinden yanıt alınamadığı zaman aşımı etkinliğini işler.
taşıma
void relocate( WEAVE_ERROR aError )
Bu yöntem, hizmet dizini önbelleğinin yerini değiştirir.
Bir hizmet uç noktası, kStatus_Relocated durum koduyla bir durum raporu döndürdüğünde uygulama, önbelleği temizlemek ve bağlantı isteklerini iptal etmek için unresolve() işlevini çağırabilir. Bu yöntem, ilk kez unresolve() ve sorun henüz çözülmediyse reset() çağrısını yaparak hata yönetimini basitleştirir.
Yöntemin bu sürümü (geri dönük uyumluluk için burada verilmiştir) bir hatayı alır ve günlüğe kaydeder, ardından relocate(void) işlevini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
relocate(void)
başka bir yere taşımak
void relocate( void )
Bu yöntem, hizmet dizini önbelleğini taşır.
Bir hizmet uç noktası, kStatus_Relocation durum koduna sahip bir durum raporu döndürdüğünde, uygulama önbelleği temizlemek ve bağlantı isteklerini iptal etmek için unresolve() çağrısı yapabilir. Bu yöntem, ilk kez unresolve() ve sorun henüz çözülmediyse reset() çağrısı yaparak hata işlemeyi basitleştirir.
Şuna da göz atın:relocate(WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
Ana makine adının ve bağlantı noktası kimliğinin geçersiz kılma dizin girişini dizin listesinin başına ekleyin.
reset
void reset( WEAVE_ERROR aError )
Bu yöntem, hizmet yöneticisini ilk durumuna sıfırlar.
Bu yöntem; iletişim durumu, önbellek durumu ve bekleyen bağlantı isteklerinin durumu da dahil olmak üzere tüm hizmet yöneticisi durumlarını sıfırlar.
Yöntemin bu sürümü (geri dönük uyumluluk için burada verilmiştir) bir hatayı alır ve günlüğe kaydeder, ardından reset(void) işlevini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
reset(void)
reset
void reset( void )
Bu yöntem, hizmet yöneticisini ilk durumuna sıfırlar.
Bu yöntem; iletişim durumu, önbellek durumu ve bekleyen bağlantı isteklerinin durumu dahil olmak üzere tüm hizmet yöneticisi durumlarını sıfırlar.
Bkz.reset(WEAVE_ERROR)
çözme
void unresolve( WEAVE_ERROR aError )
Bu yöntem, hizmet dizini önbelleğini geçersiz kılar.
Bu yöntem, hizmet dizini önbelleği durumunu, hizmet yöneticisinin bir sonraki istekte hizmet dizini sorgusu göndermesi için ayarlar.
Yöntemin bu sürümü (geri dönük uyumluluk için burada verilmiştir) bir hatayı alır ve günlüğe kaydeder, ardından unresolve(void) işlevini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
unresolve(void)
çözme
void unresolve( void )
Bu yöntem, hizmet dizini önbelleğini geçersiz kılar.
Bu yöntem, hizmet dizini önbellek durumunu, bir sonraki istekte hizmet yöneticisinin bir hizmet dizini sorgusu yayınlayacağı şekilde ayarlar.
Bkz.unresolve(WEAVE_ERROR)