nl :: Tejido:: Perfiles: ServiceDirectory :: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
El objeto administrador del directorio de servicios de Weave.
Resumen
El administrador de servicios de Weave es la interfaz principal para las aplicaciones del servicio de directorio. Como tal, oculta las complicaciones inherentes a buscar la entrada de directorio asociada con un punto final de servicio, realizar una búsqueda de DNS en uno o más de los nombres de host que se encuentran allí, intentar conectarse, asegurar la conexión, etc. También puede administrar un caché de información del directorio de servicios.
Constructores y Destructores | |
---|---|
WeaveServiceManager (void) Este método inicializa el WeaveServiceManager ejemplo. | |
~WeaveServiceManager (void) Este método destructs la WeaveServiceManager ejemplo. |
Tipos públicos | |
---|---|
@303 { | enumeración |
OnConnectBegin )(struct ServiceConnectBeginArgs &args) | nl :: Weave :: Profiles :: ServiceDirectory :: WeaveServiceManager :: OnConnectBeginvoid(* Una devolución de llamada de la aplicación realizada inmediatamente antes del establecimiento de la conexión. |
OnServiceEndpointQueryBegin )(void) | nl :: Weave :: Profiles :: ServiceDirectory :: WeaveServiceManager :: OnServiceEndpointQueryBeginvoid(* Una devolución de llamada de la aplicación para marcar la hora de una consulta de directorio de servicio saliente. |
OnServiceEndpointQueryEndWithTimeInfo )(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec) | nl :: Weave :: Profiles :: ServiceDirectory :: WeaveServiceManager :: OnServiceEndpointQueryEndWithTimeInfovoid(* Una devolución de llamada de la aplicación para entregar valores de tiempo desde una respuesta de directorio de servicios. |
RootDirectoryAccessor )(uint8_t *aDirectory, uint16_t aLength) | nl :: Weave :: Profiles :: ServiceDirectory :: WeaveServiceManager :: RootDirectoryAccessorWEAVE_ERROR (* Una función de acceso para la información del directorio raíz. |
StatusHandler )(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport) | nl :: Weave :: Perfiles :: ServiceDirectory :: WeaveServiceManager :: StatusHandlervoid(* Controlador de condiciones de error y estado. |
Funciones publicas | |
---|---|
SetConnectBeginCallback ( OnConnectBegin aConnectBegin) | void Configure una función de devolución de llamada para que se llame inmediatamente antes del establecimiento de la conexión. |
cancel (uint64_t aServiceEp, void *aAppState) | void Este método cancela una solicitud de conexión. |
clearCache (void) | void Este método borra el estado y la memoria caché del administrador si el estado está en el estado kServiceMgrState_Resolved del terminal, lo que significa que se recibió la respuesta del punto final de Service Directory. |
connect (uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf) | Este método solicita conectarse a un servicio de Weave. |
init ( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin) | Este método inicializa el objeto del administrador de servicios. |
lookup (uint64_t aServiceEp, HostPortList *outHostPortList) | Este método busca información de directorio para un punto final de servicio. |
lookup (uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry) | Este método busca información de directorio para un punto final de servicio. |
onConnectionClosed ( WEAVE_ERROR aError) | void Este método maneja el evento de conexión cerrada informado por el contexto de intercambio de Weave asociado. |
onConnectionComplete ( WEAVE_ERROR aError) | void Este método maneja el evento de conexión completada para la transacción de consulta de punto final de servicio. |
onResponseReceived (uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg) | void Este método maneja cualquier mensaje de respuesta en la conversación con el servicio de directorio. |
onResponseTimeout (void) | void Este método maneja el evento de tiempo de espera, en el que no se recibió respuesta del servicio de directorio. |
relocate ( WEAVE_ERROR aError) | void Este método reubica la caché del directorio de servicios. |
relocate (void) | void Este método reubica la caché del directorio de servicios. |
replaceOrAddCacheEntry (uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId) | Agregue la entrada de directorio principal de un nombre de host y una identificación de puerto al principio de la lista de directorios. |
reset ( WEAVE_ERROR aError) | void Este método restablece el administrador de servicios a su estado inicial. |
reset (void) | void Este método restablece el administrador de servicios a su estado inicial. |
unresolve ( WEAVE_ERROR aError) | void Este método invalida la caché del directorio de servicios. |
unresolve (void) | void Este método invalida la caché del directorio de servicios. |
Clases | |
---|---|
nl :: Armadura :: Perfiles :: ServiceDirectory :: :: WeaveServiceManager ConnectRequest | Esta clase representa una sola transacción administrada por el administrador de servicios. |
Tipos públicos
@ 303
@303
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
Una devolución de llamada de la aplicación realizada inmediatamente antes del establecimiento de la conexión.
Esta devolución de llamada puede ser utilizada por aplicaciones para observar y, opcionalmente, alterar los argumentos pasados a #WeaveConnection :: Connect () durante el curso del establecimiento de una conexión de servicio. Esta devolución de llamada se llamará tanto para la conexión al punto final del servicio de destino como para la conexión al punto final del Directorio de servicios en caso de que deba realizarse una búsqueda en el directorio.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
Una devolución de llamada de la aplicación para marcar la hora de una consulta de directorio de servicio saliente.
Esto se llama cuando estamos a punto de enviar una solicitud de consulta de punto final de servicio. Se utiliza para coincidir con OnServiceEndpointQueryEnd para compensar el tiempo de vuelo del mensaje.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
Una devolución de llamada de la aplicación para entregar valores de tiempo desde una respuesta de directorio de servicios.
Esto se llama cuando obtenemos información de la hora de la respuesta a la consulta del directorio de servicios.Tenga en cuenta que esta devolución de llamada solo se produciría si una respuesta se analiza correctamente y se incluye la información de la hora.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Una función de acceso para la información del directorio raíz.
Debe comenzar en algún lugar y con el directorio de servicios debe comenzar con un directorio auxiliar que contiene la dirección de un servidor que puede presionar para acceder a todo lo demás. Dado que es probable que la disposición y procedencia de esta información varíe de un dispositivo a otro, proporcionamos aquí una devolución de llamada de acceso.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Devoluciones | WEAVE_NO_ERROR en caso de éxito, de lo contrario el proceso de carga se interrumpe. |
StatusHandler
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
Controlador de condiciones de error y estado.
Un usuario del administrador de servicios puede estar informado de los problemas al intentar ejecutar una solicitud de conexión de una de dos formas. Puede recibir un informe de estado del servicio o puede recibir un WEAVE_ERROR generado internamente. En cualquier caso, la información llega a través de esta devolución de llamada.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
Funciones publicas
SetConnectBeginCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
Configure una función de devolución de llamada para que se llame inmediatamente antes del establecimiento de la conexión.
Detalles | |||
---|---|---|---|
Parámetros |
|
WeaveServiceManager
WeaveServiceManager( void )
Este método inicializa el WeaveServiceManager ejemplo.
Tenga en cuenta que init () se debe llamar a más de inicialización este caso.
cancelar
void cancel( uint64_t aServiceEp, void *aAppState )
Este método cancela una solicitud de conexión.
Este método cancela una solicitud de conexión dado el ID del punto final del servicio y el objeto de estado de la aplicación pasado en el momento de la solicitud como identificadores. Si es la última solicitud de conexión, este método también borra cualquier estado de conexión del directorio de servicios pendiente.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
limpiar cache
void clearCache( void )
Este método borra el estado y la memoria caché del administrador si el estado está en el estado kServiceMgrState_Resolved del terminal, lo que significa que se recibió la respuesta del punto final de Service Directory.
conectar
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
Este método solicita conectarse a un servicio de Weave.
Esta es la llamada de conexión de nivel superior. Básicamente, produce una conexión segura al servicio Weave dado un punto final de servicio y un modo de autenticación o muere en el intento.
Este método sólo se puede llamar después de la llamada con éxito a init () , y una solicitud de conexión puede ser potencialmente cancelado por cancelar () .
Se puede llamar a este método antes de que la caché local se llene con datos de datos aprovisionados predeterminados o de un viaje al servicio de directorio. El administrador de servicios simplemente pondría en cola la solicitud antes de que se pueda determinar el contenido de la caché.
Detalles | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||||||||
Devoluciones | WEAVE_NO_ERROR en el éxito; de lo contrario, un código de error respectivo. |
en eso
WEAVE_ERROR init( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin )
Este método inicializa el objeto del administrador de servicios.
Para poder utilizarlo, se debe inicializar un objeto de administrador de servicios. Después de una llamada exitosa a este método, los clientes pueden empezar a llamar a () de conexión , lookup () , y otros métodos.
Detalles | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||||||||||
Devoluciones | WEAVE_ERROR_INVALID_ARGUMENT si un argumento de la función no es válido; de lo contrario, WEAVE_NO_ERROR . |
buscar
WEAVE_ERROR lookup( uint64_t aServiceEp, HostPortList *outHostPortList )
Este método busca información de directorio para un punto final de servicio.
Si el directorio de servicios se ha resuelto, es decir, si ha habido un éxito connect () operación, entonces este método se pueblan el suministrado HostPortList objeto.
Nota: El HostPortList se une a la WeaveServiceManager objeto; sigue siendo válido hasta que se borra la memoria caché del directorio de servicios o hasta que se realiza otra búsqueda en el directorio de servicios.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
buscar
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
Este método busca información de directorio para un punto final de servicio.
Si el directorio de servicios se ha resuelto, es decir, si ha habido un éxito connect () operación, entonces este método devolverá un directorio de entrada dado un identificador de servicio de punto final.
Este método expone los detalles de la implementación interna del directorio de servicios, las implementaciones deben favorecer encarecidamente el uso de la variante de este método que genera el HostPortList .
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
Este método maneja el evento de conexión cerrada informado por el contexto de intercambio de Weave asociado.
Detalles | |||
---|---|---|---|
Parámetros |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
Este método maneja el evento de conexión completada para la transacción de consulta de punto final de servicio.
Hay un par de posibilidades. Primero, la conexión podría haber fallado, en cuyo caso hemos terminado. De lo contrario, la conexión está realmente completa y lo que queremos hacer es abrir un contexto de intercambio y enviar una consulta de directorio.
Detalles | |||
---|---|---|---|
Parámetros |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
Este método maneja cualquier mensaje de respuesta en la conversación con el servicio de directorio.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
onResponseTimeout
void onResponseTimeout( void )
Este método maneja el evento de tiempo de espera, en el que no se recibió respuesta del servicio de directorio.
trasladarse
void relocate( WEAVE_ERROR aError )
Este método reubica la caché del directorio de servicios.
Cuando un extremo de servicio devuelve un informe de estado con código de estado kStatus_Relocated, la aplicación podría llamar unresolve () para aclarar el caché y cancelar las solicitudes de conexión. Este método simplifica la gestión de errores llamando unresolve () en el primer tiempo, y reset () si el problema no se ha resuelto todavía.
Esta versión del método - para garantizar la compatibilidad hacia atrás - y se registra un error entonces llama Reubicar (void) .
Detalles | |||
---|---|---|---|
Parámetros |
|
reubicar (anular)
trasladarse
void relocate( void )
Este método reubica la caché del directorio de servicios.
Cuando un extremo de servicio devuelve un informe de estado con código de estado kStatus_Relocated, la aplicación podría llamar unresolve () para aclarar el caché y cancelar las solicitudes de conexión. Este método simplifica la gestión de errores llamando unresolve () en el primer tiempo, y reset () si el problema no se ha resuelto todavía.
Ver también:reubicar (WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
Agregue la entrada de directorio principal de un nombre de host y una identificación de puerto al principio de la lista de directorios.
Reiniciar
void reset( WEAVE_ERROR aError )
Este método restablece el administrador de servicios a su estado inicial.
Este método restablece todos los estados del administrador de servicios, incluido el estado de las comunicaciones, el estado de la caché y el estado de cualquier solicitud de conexión pendiente.
Esta versión del método - para garantizar la compatibilidad hacia atrás - y se registra un error entonces llama reinicio (void) .
Detalles | |||
---|---|---|---|
Parámetros |
|
reiniciar (anular)
Reiniciar
void reset( void )
Este método restablece el administrador de servicios a su estado inicial.
Este método restablece todos los estados del administrador de servicios, incluido el estado de las comunicaciones, el estado de la caché y el estado de cualquier solicitud de conexión pendiente.
Ver también:restablecer (WEAVE_ERROR)
no resolver
void unresolve( WEAVE_ERROR aError )
Este método invalida la caché del directorio de servicios.
Este método establece el estado de la memoria caché del directorio de servicios para que en la próxima solicitud el administrador de servicios emita una consulta del directorio de servicios.
Esta versión del método - para garantizar la compatibilidad hacia atrás - y se registra un error entonces llama unresolve (void) .
Detalles | |||
---|---|---|---|
Parámetros |
|
sin resolver (vacío)
no resolver
void unresolve( void )
Este método invalida la caché del directorio de servicios.
Este método establece el estado de la memoria caché del directorio de servicios para que en la próxima solicitud el administrador de servicios emita una consulta del directorio de servicios.
Ver también:anular la resolución (WEAVE_ERROR)
~ WeaveServiceManager
~WeaveServiceManager( void )
Este método destructs la WeaveServiceManager ejemplo.