nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
Weave hizmet dizininin 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şlemleri yapmanın komplikasyonlarını gizler. 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 kaldırır.
|
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 bir uygulama geri çağırması. |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfovoid(*
Hizmet dizini yanıtından zaman değerlerini iletmek için kullanılan bir uygulama geri çağırması. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor Kök dizin bilgileri için erişimci işlevi. |
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandlervoid(*
Hata ve durum koşulları için 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ının dizin bilgilerini arar.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
Bu yöntem, bir hizmet uç noktasının dizin bilgilerini arar.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
Bu yöntem, ilişkili Weave exchange bağlamı tarafından bildirilen bağlantı kapatıldı 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 iletilerini 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ğinin yerini değiştirir.
|
relocate(void)
|
void
Bu yöntem, hizmet dizini önbelleğinin yerini değiştirir.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
Bir ana makine adının ve bağlantı noktası kimliğinin geçersiz kılınan dizin girişini dizin listesinin başına ekleyin.
|
reset(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet yöneticisini başlangıç durumuna sıfırlar.
|
reset(void)
|
void
Bu yöntem, hizmet yöneticisini başlangıç 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 bir 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ğırması.
Bu geri çağırma, uygulamalar tarafından 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 kullanılabilir. Bu geri çağırma, hem hedef hizmet uç noktasıyla hem de bir dizin aramasının 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 bir uygulama geri çağırması.
Bu çağrı, hizmet uç noktası sorgu isteği göndermek üzereyken çağrılır. Bu, mesaj yayın süresini telafi etmek amacıyla OnServiceEndpointQueryEnd ile eşleştirme yapmak için kullanılır.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
Hizmet dizini yanıtından zaman değerlerini iletmek için kullanılan bir uygulama geri çağırması.
Bu çağrı, hizmet dizini sorgu yanıtından zaman bilgisi aldığımızda çağrılır. Bu geri çağırmanın yalnızca bir yanıtın başarıyla ayrıştırılması ve zaman bilgisinin eklenmesi durumunda gerçekleştiğini unutmayın
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Kök dizin bilgileri için erişimci işlevi.
Bir yerden başlamanız gerekir ve hizmet diziniyle birlikte, diğer her şeye erişmek için tıklayabileceğiniz bir sunucunun adresini içeren saplama diziniyle başlamanız gerekir. Bu bilgilerin oluşumu ve kaynağı cihazdan cihaza değişiklik gösterebileceğinden erişimcileri buradan geri ararı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öneticisinin kullanıcısı, bağlantı isteğini yürütmeye çalışırken karşılaşılan sorunlar hakkında iki şekilde bilgilendirilebilir. Hizmetten bir durum raporu alabilir ya da dahili olarak oluşturulmuş 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 fazla başlatmak için init() çağrısının yapı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, hizmet uç noktası kimliğine ve istek sırasında tanımlayıcı olarak iletilen uygulama durumu nesnesine bağlı olarak bir bağlanma isteğini iptal eder. Bu son bağlantı isteğiyse bu yöntem beklemedeki 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. Temelde, bir hizmet uç noktası ve kimlik doğrulama modu belirtildiğinde Weave hizmetiyle güvenli bağlantı oluşturur veya bu işlemi denendiğinde son bulur.
Bu yöntem yalnızca init() işlevine yapılan başarılı çağrıdan sonra çağrılabilir ve bir bağlantı isteği cancel() tarafından 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. Hizmet yöneticisi, önbellek içeriği belirlenmeden önce isteği sıraya alır.
Ayrıntılar | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||||
İadeler |
Başarıda WEAVE_NO_ERROR; yoksa ilgili bir hata kodu gösterilir.
|
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önteme yapılan başarılı bir çağrıdan sonra, istemciler connect(), lookup() ve diğer yöntemleri çağırmaya başlayabilir.
Ayrıntılar | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||||||
İadeler |
Bir iş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ının dizin bilgilerini arar.
Hizmet dizini çözümlendiyse (ör. başarılı bir connect() işlemi varsa) bu yöntem sağlanan HostPortList nesnesini doldurur.
Not: HostPortList, WeaveServiceManager nesnesine bağlıdır; hizmet dizini önbelleği temizlenene veya başka bir hizmet dizini araması yapılana kadar geçerli kalır.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Değerleri Döndür |
|
lookup
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
Bu yöntem, bir hizmet uç noktasının dizin bilgilerini arar.
Hizmet dizini çözümlendiyse (yani başarılı bir connect() işlemi varsa) bu yöntem, belirli bir hizmet uç noktası tanımlayıcısının verildiği bir dizin girişini döndürür.
Bu yöntem, hizmet dizininin dahili uygulamasının ayrıntılarını sunar. Uygulamalarda, bu yöntemin HostPortList oluşturan varyantının kullanılması kesinlikle önerilir.
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ı kapatıldı 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. İlk olarak bağlantı başarısız olmuş olabilir. Bağlantının bittiğini. Aksi takdirde, bağlantı gerçekten tamamlanmıştır ve istediğimiz şey bir exchange bağlamı açıp bir dizin sorgusu göndermektir.
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 iletilerini 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.
başka bir yere taşımak
void relocate( WEAVE_ERROR aError )
Bu yöntem, hizmet dizini önbelleğinin yerini değiştirir.
Bir hizmet uç noktası, kStatus_Replacement 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.
Yöntemin bu sürümü (geriye dönük uyumluluk için burada verilmiştir), bir hata alıp kaydeder ve ardından relocate(void) yöntemini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
relocate(void)
başka bir yere taşımak
void relocate( void )
Bu yöntem, hizmet dizini önbelleğinin yerini değiştirir.
Bir hizmet uç noktası, kStatus_Replacement 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.
Şu kaynakları da inceleyin:yeniden konumlandır(WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
Bir ana makine adının ve bağlantı noktası kimliğinin geçersiz kılınan dizin girişini dizin listesinin başına ekleyin.
reset
void reset( WEAVE_ERROR aError )
Bu yöntem, hizmet yöneticisini başlangıç 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.
Yöntemin bu sürümü (geriye dönük uyumluluk için burada verilmiştir), bir hata alıp günlüğe kaydeder ve ardından reset(void) yöntemini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
sıfırla(geçersiz)
reset
void reset( void )
Bu yöntem, hizmet yöneticisini başlangıç 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.
Şu kaynakları da inceleyin:reset(WEAVE_ERROR)
çözmek
void unresolve( WEAVE_ERROR aError )
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.
Yöntemin bu sürümü (geriye dönük uyumluluk için burada verilmiştir), bir hata alıp kaydeder ve ardından unresolve(void) yöntemini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
çözümsüz(geçersiz)
çözmek
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.
Şu kaynakları da inceleyin:Çözülmedi(WEAVE_ERROR)