Referência da classe TAGContainerOpener

Referência da classe TAGContainerOpener

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:
containerIdO ID do contêiner a ser carregado.
tagManagerO TAGManager para receber o contêiner.
timeoutO número máximo de segundos para aguardar para carregar o contêiner do armazenamento salvo. Se nulo, defaultTimeout será usado.
openTypeA 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
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:
containerIdO ID do contêiner a ser carregado.
tagManagerO TAGManager usado para receber o contêiner.
openTypeA escolha de como abrir o contêiner.
timeoutO número máximo de segundos para aguardar para carregar o contêiner do armazenamento salvo. Se nulo, defaultTimeout será usado.
notificadorUm 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.