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 hizmeti 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ı için DNS araması yapma, bağlanmaya çalışma, bağlantıyı güvenli hale getirme vb. işlemlerdeki özellikleri gizler. Ayrıca, hizmet dizini bilgilerinin bulunduğu bir önbelleği 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 kullanılan uygulama geri çağırması. |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfovoid(*
Hizmet dizini yanıtından zaman değerleri sunmak için bir uygulama geri çağırması. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor Kök dizin bilgisi 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 bir işleyici. |
Kamu işlevleri |
|
---|---|
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, terminal kServiceMgrState_resolved durumundaysa, yani Hizmet Dizini uç noktasından yanıt alındıysa bu yöntem, yöneticinin durumunu ve önbelleğini temizler.
|
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ğlanmayı ister.
|
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 değişim 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 bağlantı oluşturma işlemini tamamlar.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
Bu yöntem, dizin hizmetiyle görüşmedeki tüm yanıt mesajlarını işler.
|
onResponseTimeout(void)
|
void
Bu yöntem, dizin hizmetinden yanıt alınmayan zaman aşımı etkinliğini işler.
|
relocate(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet dizini önbelleğini yeniden konumlandırır.
|
relocate(void)
|
void
Bu yöntem, hizmet dizini önbelleğini yeniden konumlandırır.
|
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ılan 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 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 işlevi, 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ına bağlantı hem de dizin aramasının gerçekleştirilmesi gerektiğinde Hizmet Dizini uç noktasına yapılan bağlantı için çağrılır.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
Giden bir hizmet dizini sorgusunun zamanını işaretlemek için kullanılan uygulama geri çağırması.
Bu, hizmet uç noktası sorgu isteğini göndermek üzereyken çağrılır. Bu parametre, ileti yayın süresini dengelemek için 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ğerleri sunmak için bir uygulama geri çağırması.
Bu işlev, 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 başarıyla ayrıştırılıp zaman bilgileri dahil edilirse gerçekleştiğini unutmayın
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Kök dizin bilgisi için erişimci işlevi.
Bir yerden başlamanız ve hizmet diziniyle, diğer her şeye ulaşmak için tıklayabileceğiniz bir sunucunun adresini içeren bir saplama diziniyle başlamanız gerekir. Bu bilgilerin yapılış şekli ve kaynağı muhtemelen cihazdan cihaza değişiklik göstereceğinden, erişimcileri burada geri arama olanağı sağlarız.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
WEAVE_NO_ERROR başarılı olduğunda, 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 bir işleyici.
Hizmet yöneticisinin bir kullanıcısı, iki yöntemden biriyle bir bağlantı isteğini yürütmeye çalışırken sorun yaşadığı konusunda bilgilendirilebilir. Hizmetten bir durum raporu alabilir veya dahili olarak oluşturulmuş bir WEAVE_ERROR alabilir. Her iki durumda da bilgiler bu geri arama üzerinden gelir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
Kamu işlevleri
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() işlevinin çağrılması gerektiğini unutmayın.
cancel
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 zamanında tanımlayıcı olarak iletilen uygulama durumu nesnesine bağlı olarak 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, terminal kServiceMgrState_resolved durumundaysa, yani Hizmet Dizini uç noktasından yanıt alındıysa bu yöntem, yöneticinin durumunu ve önbelleğini temizler.
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ğlanmayı ister.
Bu, üst düzey Connect aramasıdır. Temel olarak, bir hizmet uç noktası ve kimlik doğrulama modu verildiğinde veya çalışırken kalıplarla Weave hizmetiyle güvenli bir bağlantı oluşturur.
Bu yöntem yalnızca init() işlevine yapılan başarılı çağrıdan sonra çağrılabilir ve bağlantı isteği, cancel() işlevi ile potansiyel olarak iptal edilebilir.
Bu yöntem, yerel önbelleğin varsayılan temel hazırlığı yapılan verilerden veya dizin hizmetine geziden gelen 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ılı olduğunda 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.
Kullanılabilmesi için bir hizmet yöneticisi nesnesinin başlatılması 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ı için dizin bilgilerini arar.
Hizmet dizini çözümlendiyse (ör. başarılı bir connect() işlemi gerçekleştirildiyse) 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ı gerçekleşene 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ümlendiyse (ör. başarılı bir connect() işlemi gerçekleştirildiyse) bu yöntem, hizmet uç noktası tanımlayıcısına göre bir dizin girişi döndürür.
Bu yöntem, hizmet dizininin dahili uygulamasının ayrıntılarını gösterir. Uygulamalarda, HostPortList'i oluşturan bu yöntemin varyantının kullanılması özellikle tercih edilmelidir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
Bu yöntem, ilişkili Weave değişim 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 bağlantı oluşturma işlemini tamamlar.
Birkaç olasılık vardır. Öncelikle bağlantı başarısız olmuş olabilir, bu durumda işimiz tamamlanmıştır. Aksi takdirde, bağlantı gerçekten tamamlanmış olur ve bizim yapmak istediğimiz şey bir exchange bağlamı açmak ve 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 görüşmedeki tüm yanıt mesajlarını işler.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
onResponseTimeout
void onResponseTimeout( void )
Bu yöntem, dizin hizmetinden yanıt alınmayan zaman aşımı etkinliğini işler.
yer değiştirmek
void relocate( WEAVE_ERROR aError )
Bu yöntem, hizmet dizini önbelleğini yeniden konumlandırı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() işlevini çağırabilir. 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 buradadır) bir hata alıp günlüğe kaydeder ve ardından relocate(void) yöntemini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
relocate(void)
yer değiştirmek
void relocate( void )
Bu yöntem, hizmet dizini önbelleğini yeniden konumlandırı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() işlevini çağırabilir. Bu yöntem, ilk kez unresolve() ve sorun henüz çözülmediyse reset() çağrısı yaparak hata işlemeyi basitleştirir.
Şu makaleyi de inceleyebilirsiniz:relocate(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ılan 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 dahil 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) ifadesini ç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 tüm hizmet yöneticisi durumlarını sıfırlar.
Şu makaleyi de inceleyebilirsiniz: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 ayarlar. Böylece, sonraki istekte hizmet yöneticisi bir hizmet dizini sorgusu yürütür.
Yöntemin bu sürümü (geriye dönük uyumluluk için burada) bir hata alıp günlüğe kaydeder ve ardından unresolve(void) yöntemini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
unresolve(void)
çözmek
void unresolve( void )
Bu yöntem, hizmet dizini önbelleğini geçersiz kılar.
Bu yöntem, hizmet dizini önbellek durumunu ayarlar. Böylece, sonraki istekte hizmet yöneticisi bir hizmet dizini sorgusu yürütür.
Şu makaleyi de inceleyebilirsiniz:unresolve(WEAVE_ERROR)