Referência da classe TAGContainerOpener

Referência da classe TAGContainerOpener

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:
containerIdO ID do contêiner a ser carregado.
tagManagerO TAGManager para receber o contêiner.
pedido de tempoO número máximo de segundos de espera 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
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:
containerIdO ID do contêiner a ser carregado.
tagManagerO TAGManager usado para receber o contêiner.
openTypeA escolha de como abrir o contêiner.
pedido de tempoO número máximo de segundos de espera 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 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.