nl:: Weave:: Profiller:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
Weave hizmet dizininin yönetici nesnesi.
Özet
Weave hizmet yöneticisi, dizin hizmetine yönelik uygulamaların ana arayüzüdür. Bu şekilde, bir hizmet uç noktasıyla ilişkili dizin girişini arama, burada bulunan ana makine adlarından biri veya daha fazlasına yönelik DNS araması yapma, bağlanmaya çalışma, bağlantıyı güvenli tutma gibi işlemlerle ilgili sorunları gizler. Ayrıca, hizmet dizini bilgilerinin önbelleğini de yönetebilir.
İnşaat Ustaları 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::OnConnectStartvoid(*
Bağlantının kurulmasından hemen önce yapılan uygulama geri çağırma işlemi. |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryStartvoid(*
Giden 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(*
Bir hizmet dizini yanıtından zaman değerleri iletmesi için 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 bir işleyici. |
Herkese açık işlevler |
|
---|---|
SetConnectBeginCallback(OnConnectBegin aConnectBegin)
|
void
Bağlantı kurma işleminden hemen önce çağrılacak bir geri çağırma işlevi ayarlayın.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
Bu yöntem bir bağlantı isteğini iptal eder.
|
clearCache(void)
|
void
Bu yöntem, durum kServiceMgrState_Çözümlendi durumundaysa yani Hizmet Dizini uç noktasından yanıt alındığı anlamına gelirse 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ğ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ı kapatma etkinliğini yönetir.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet uç nokta sorgusu işlemi için bağlama işleminin tamamlanmasını işler.
|
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ınamayan zaman aşımı etkinliğini yönetir.
|
relocate(WEAVE_ERROR aError)
|
void
Bu yöntem, hizmet dizini önbelleğini yeniden gösterir.
|
relocate(void)
|
void
Bu yöntem, hizmet dizini önbelleğini yeniden gösterir.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
Dizin listesinin başına ana makine adının ve bağlantı noktası kimliğinin geçersiz olacak dizin girişini 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 yanıt alınması gereken milisaniye sayısı. |
OnConnectStart
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
Bağlantının kurulmasından hemen önce yapılan uygulama geri çağırma işlemi.
Bu geri çağırma, uygulamalar tarafından hizmet bağlantısı oluştururken #WeaveConnection::Connect() öğesine iletilen bağımsız değişkenleri gözlemlemek ve 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 yapılması gerektiği durumlarda Hizmet Dizini uç noktasına bağlantı için çağrılır.
OnServiceEndpointQueryStart
void(* OnServiceEndpointQueryBegin)(void)
Giden hizmet dizini sorgusunun zamanını işaretlemek için bir uygulama geri çağırması.
Bu işlev, hizmet uç noktası sorgu isteği göndermek üzere olduğumuzda çağrılır. Bu dizi, mesaj yayınlama süresini dengelemek için OnServiceEndpointQueryEnd ile eşleşme sağlamak için kullanılır.
OnServiceEndpointQueryEndEndTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
Bir hizmet dizini yanıtından zaman değerleri iletmesi için bir uygulama geri çağırması.
Bu, hizmet dizini sorgu yanıtından zaman bilgisi alındığında çağrılır. Bu geri çağırma, yalnızca bir yanıt başarıyla ayrıştırıldığında ve zaman bilgileri eklendiğinde gerçekleşir
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 ve hizmet diziniyle, diğer her şeyi almak üzere vurabileceğiniz bir sunucunun adresini içeren bir dizin diziniyle başlamanız gerekir. Bu bilginin tasfiyesi ve dayanağı cihaza göre farklılık gösterebileceğinden, size telefonla erişim isteğinde bulunabiliriz.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
WEAVE_NO_ERROR (başarısız). Aksi takdirde yükleme işlemi iptal edilir.
|
Durum İşleyici
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ı, bir bağlantı isteğini yürütmeye çalışırken ortaya çıkan sorunlar hakkında iki yöntemden birini kullanarak bilgilendirilebilir. Hizmetten bir durum raporu veya dahili olarak oluşturulmuş bir WEAVE_ERROR alabilir. Her iki durumda da bilgiler bu geri çağırma üzerinden elde edilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
Herkese açık işlevler
SetConnectStartGeri Çağırma
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
Bağlantı kurma işleminden 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() yönteminin çağrılması gerekir.
cancel
void cancel( uint64_t aServiceEp, void *aAppState )
Bu yöntem bir bağlantı isteğini iptal eder.
Bu yöntem, hizmet uç nokta kimliği ve istek sırasında tanımlayıcı olarak iletilen uygulama durumu nesnesi göz önünde bulundurularak bir bağlantı isteğini iptal eder. Bu, son bağlantı isteğiyse bekleyen tüm hizmet dizini bağlantı durumlarını da temizler.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
ClearCache
void clearCache( void )
Bu yöntem, durum kServiceMgrState_Çözümlendi durumundaysa yani Hizmet Dizini uç noktasından yanıt alındığı anlamına gelirse yöneticinin durumunu ve önbelleğini temizler.
bağlan
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ı çağrısıdır. Esas olarak bir hizmet uç noktası ve kimlik doğrulama modu nedeniyle Weave hizmeti için güvenli bir bağlantı oluşturur veya denemekten ölür.
Bu yöntem yalnızca başarılı bir şekilde init() çağrısından sonra çağrılabilir ve bir bağlantı isteği cancel() tarafından iptal edilebilir.
Bu yöntem, yerel önbelleğin varsayılan olarak sağlanan verilerle veya dizin hizmetine yapılan bir geziyle doldurulmadan önce çağrılabilir. Hizmet yöneticisi, önbellek içeriğinin belirlenebilmesi için isteği sıraya alır.
Ayrıntılar | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||||
İadeler |
Başarıyla ilgili WEAVE_NO_ERROR; aksi takdirde ilgili bir 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 başlatılması gerekir. Bu yönteme yapılan başarılı bir çağrıdan sonra müşteriler 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_INVALID; 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. Hizmet dizini önbelleği temizlenene veya başka bir hizmet dizini araması yapılana kadar geçerliliğini sürdürü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, yani başarılı bir connect() işlemi varsa bu yöntem bir hizmet uç noktası tanımlayıcısı verilen dizin girişini döndürür.
Bu yöntem, hizmet dizininin dahili kullanımının ayrıntılarını gösterir. Uygulamalar, HostPortList'i oluşturan bu yöntemin varyantını kullanmayı kesinlikle tercih etmelidir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
Bu yöntem, ilişkili Weave exchange bağlamı tarafından bildirilen bağlantı kapatma etkinliğini yönetir.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
onConnectionTamam
void onConnectionComplete( WEAVE_ERROR aError )
Bu yöntem, hizmet uç nokta sorgusu işlemi için bağlama işleminin tamamlanmasını işler.
Birkaç olasılık vardır. İlk olarak, bağlantı başarısız olmuş olabilir. Bu durumda işlem tamamlanmıştır. Aksi takdirde, bağlantı gerçekten tamamlanmış olur ve yapmak istediğimiz şey bir exchange bağlamı açıp 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ınamayan zaman aşımı etkinliğini yönetir.
yeniden taşı
void relocate( WEAVE_ERROR aError )
Bu yöntem, hizmet dizini önbelleğini yeniden gösterir.
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 unsolutions() çağrısı yapabilir. Bu yöntem, ilk kez unsolutions() ve sorun henüz çözülmediyse reset() yöntemini çağırarak hata işleme sürecini basitleştirir.
Yöntemin bu sürümü (burada geriye dönük uyumluluk için) bir hata alıp günlüğe kaydeder, ardından relocate(ance) ifadesini çağırır.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
yeniden bulma(geçersiz)
yeniden taşı
void relocate( void )
Bu yöntem, hizmet dizini önbelleğini yeniden gösterir.
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 unsolutions() çağrısı yapabilir. Bu yöntem, ilk kez unsolutions() ve sorun henüz çözülmediyse reset() yöntemini çağırarak hata işleme sürecini 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 )
Dizin listesinin başına ana makine adının ve bağlantı noktası kimliğinin geçersiz olacak dizin girişini 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 tüm bağlantı isteklerinin durumu dahil olmak üzere tüm hizmet yöneticisi durumlarını sıfırlar.
Yöntemin bu sürümü (burada geriye dönük uyumluluk için) bir hata alıp günlüğe kaydeder, ardından reset(invalid) işlevini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
sıfırlama(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 tüm bağlantı isteklerinin durumu dahil olmak üzere tüm hizmet yöneticisi durumlarını sıfırlar.
Şu makaleyi de inceleyebilirsiniz:reset(WEAVE_ERROR)
çözümlenmedi
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 sorgu dizini gönderecek şekilde ayarlar.
Yöntemin bu sürümü (burada geriye dönük uyumluluk için) bir hata alıp günlüğe kaydeder ve ardından çözümleme(condition) işlevini çağırır .
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
unsol(dis))
çözümlenmedi
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 sorgu dizini gönderecek şekilde ayarlar.
Şu makaleyi de inceleyebilirsiniz:unsol(WEAVE_ERROR)