Informações gerais
Uma classe auxiliar para abrir contêineres.
Ele é um wrapper em torno do método openContainerById:callback: (TAGManager) para autores de chamadas que fornece suporte para tempos limite.
Confira a seguir um exemplo que mostra a espera até 0,1 segundo do carregamento do contêiner antes de voltar para o contêiner padrão:
NSTimeInterval timeout = 0.1; TagManager *tagManager = [TagManager instance]; TAGContainerFuture *future = [TAGContainerOpener openContainerWithId:@"GTM-XXXX" tagManager:tagManager openType:kTAGOpenTypePreferNonDefault timeout:&timeout]; TAGContainer *container = [future get];
Se o autor da chamada quiser ser notificado de forma assíncrona quando o contêiner estiver disponível, mas quiser especificar manualmente o tempo limite como 0,5 segundo, ele deverá subclassificar TAGContainerOpenerNotifier, fazer a chamada para openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) com tempo limite definido como 0,5 e adicionar a implementação a containerAvailable: (TAGContainerOpenerNotifier-pnotification.
Funções membro públicas estáticas | |
(id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Aguarda até timeout segundos para o carregamento de um contêiner (não padrão ou atualizado, dependendo do openType especificado) e retorna um TAGContainerFuture . | |
(void) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Aguarda até timeout segundos para que um contêiner seja carregado (não padrão ou atualizado, dependendo do openType especificado) e chama um notificador quando o contêiner estiver disponível. | |
(NSTimeInterval) | + defaultTimeout |
Retorna o tempo limite padrão para solicitar o contêiner. |
Documentação da função membro
+ (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
tagManager: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType). | openType | |
timeout: | (NSTimeInterval *) | tempo limite | |
Aguarda até timeout
segundos para o carregamento de um contêiner (não padrão ou atualizado, dependendo do openType
especificado) e retorna um TAGContainerFuture
.
Se o tipo aberto for kTAGOpenTypePreferNonDefault
, um contêiner não padrão (salvo ou recuperado da rede) será carregado, e o TAGContainerFuture
será desbloqueado assim que uma das seguintes situações acontecer:
- um contêiner salvo é carregado.
- Se não houver um contêiner salvo, um contêiner de rede será carregado ou um erro de rede vai ocorrer.
- o timer expirar.
Se ocorrer um erro de rede ou o timer expirar, get (TAGContainerFuture-p) poderá retornar um contêiner padrão.
Se o tipo aberto for kTAGOpenTypePreferFresh
, um contêiner novo (salvo ou recuperado da rede) será carregado e o TAGContainerFuture será desbloqueado assim que uma das seguintes situações ocorrer:
- um novo contêiner salvo é carregado.
- se não houver um contêiner salvo ou se ele estiver desatualizado, um contêiner de rede será carregado ou um erro de rede vai ocorrer.
- o timer expirar.
Se ocorrer um erro de rede ou o timer expirar, get (TAGContainerFuture-p) pode conter padrões ou um contêiner salvo desatualizado.
Se você chamar um dos métodos openContainer uma segunda vez com um determinado containerId
, será retornado um TAGContainerFuture
, cujo get (TAGContainerFuture-p) retornará o mesmo contêiner da primeira chamada.
- Parâmetros:
-
containerId O ID do contêiner a ser carregado. tagManager O TAGManager para receber o contêiner. pedido de tempo O número máximo de segundos de espera para carregar o contêiner do armazenamento salvo. Se nulo, defaultTimeout será usado. openType A escolha de como abrir o contêiner.
- Retorna:
- Um TAGContainerFuture que aguardará até
timeout
e retornará o contêiner quando ele estiver disponível.
+ (void) openContainerWithId: | (NSString *) | containerId | |
tagManager: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType). | openType | |
timeout: | (NSTimeInterval *) | tempo limite | |
notificador: | (id< TAGContainerOpenerNotifier >) | notificador | |
Aguarda até timeout
segundos para que um contêiner seja carregado (não padrão ou atualizado, dependendo do openType
especificado) e chama um notificador quando o contêiner estiver disponível.
Se o tipo aberto for kTAGOpenTypePreferNonDefault
, um contêiner não padrão (salvo ou recuperado da rede) será carregado e transmitido para o notificador. O notificador é chamado assim que uma das seguintes situações ocorre:
- um contêiner salvo é carregado.
- Se não houver um contêiner salvo, um contêiner de rede será carregado ou um erro de rede vai ocorrer.
- o timer expirar.
Se ocorrer um erro de rede ou o timer expirar, o contêiner transmitido ao notificador será um contêiner padrão.
Se o tipo aberto for kTAGOpenTypePreferFresh
, um contêiner novo (salvo ou recuperado da rede) será carregado e transmitido para o notificador. O notificador é chamado assim que uma das seguintes situações ocorre:
- um novo contêiner salvo é carregado.
- se não houver um contêiner salvo ou se ele estiver desatualizado, um contêiner de rede será carregado ou um erro de rede vai ocorrer.
- o timer expirar.
Se ocorrer um erro de rede ou o timer expirar, o contêiner enviado para o notificador pode conter padrões ou um contêiner salvo desatualizado.
Se você chamar um dos métodos openContainer uma segunda vez com um determinado containerId
, o mesmo contêiner retornado da chamada anterior será transmitido para o notificador assim que estiver disponível.
- Parâmetros:
-
containerId O ID do contêiner a ser carregado. tagManager O TAGManager usado para receber o contêiner. openType A escolha de como abrir o contêiner. pedido de tempo O número máximo de segundos de espera para carregar o contêiner do armazenamento salvo. Se nulo, defaultTimeout será usado. notificador Um notificador opcional que será chamado quando o contêiner estiver disponível. Ele será chamado com o contêiner novo, se disponível e carregado antes do tempo limite. Caso contrário, será chamado com um contêiner não novo. O notificador pode ser chamado a partir de um encadeamento diferente.
+ (NSTimeInterval) defaultTimeout |
Retorna o tempo limite padrão para solicitar o contêiner.
- Retorna:
- O tempo limite padrão em segundos.