Visão geral
Uma classe auxiliar para abrir contêineres.
Este é um wrapper em torno do método openContainerById:callback: (TAGManager) para autores de chamadas que oferece suporte para tempos limite.
Veja a seguir um exemplo que mostra a espera de até 0,1 segundo para o contêiner ser carregado 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 para 0,5 segundo, ele deverá criar uma subclasse para TAGContainerOpenerNotifier, faça a chamada para openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) com tempo limite definido como 0,5 e adicione a implementação a container-container-Notifier.
Funções membro públicas estáticas | |
| (id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Espera até timeout segundos para um contêiner ser carregado (não padrão ou atual, dependendo da openType especificada) e retorna um TAGContainerFuture. | |
| (nulo) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Espera até timeout segundos pelo carregamento de um contêiner (não padrão ou atual, dependendo do openType especificado) e chama um notificador quando o contêiner está 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 | |
| tipo de abertura: | (TAGOpenType) | openType | |
| timeout: | (NSTimeInterval *) | tempo limite | |
Espera até timeout segundos para um contêiner ser carregado (não padrão ou atual, dependendo da openType especificada) 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) pode 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 acontecer:
- um novo contêiner salvo é carregado.
- se não houver um contêiner salvo ou se o contêiner salvo 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) poderá conter padrões ou um contêiner salvo desatualizado.
Se você chamar um dos métodos openContainer pela segunda vez com um determinado containerId, será retornado um TAGContainerFuture que tem get (TAGContainerFuture-p) e 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. timeout O número máximo de segundos para aguardar 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é
timeoute retornará o contêiner quando ele estiver disponível.
| + (void) openContainerWithId: | (NSString *) | containerId | |
| TagManager: | (TAGManager *) | tagManager | |
| tipo de abertura: | (TAGOpenType) | openType | |
| timeout: | (NSTimeInterval *) | tempo limite | |
| notificador: | (id< TAGContainerOpenerNotifier >) | notificador | |
Espera até timeout segundos pelo carregamento de um contêiner (não padrão ou atual, dependendo do openType especificado) e chama um notificador quando o contêiner está disponível.
Se o tipo aberto for kTAGOpenTypePreferNonDefault, um contêiner não padrão (salvo ou recuperado da rede) será carregado e transmitido ao notificador. O notificador é chamado assim que uma das seguintes situações acontece:
- 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 para o 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 ao notificador. O notificador é chamado assim que uma das seguintes situações acontece:
- um novo contêiner salvo é carregado.
- se não houver um contêiner salvo ou se o contêiner salvo 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 transmitido para o notificador poderá conter padrões ou um contêiner salvo desatualizado.
Se você chamar um dos métodos openContainer pela 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. timeout O número máximo de segundos para aguardar 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 novo contêiner, se disponível e carregado antes do tempo limite. caso contrário, ele será chamado com um contêiner que não é novo. O notificador pode ser chamado em um thread diferente.
| + (NSTimeInterval) defaultTimeout |
Retorna o tempo limite padrão para solicitar o contêiner.
- Retorna:
- O tempo limite padrão em segundos.