Présentation
Une classe d'assistance pour ouvrir des conteneurs.
Il s'agit d'un wrapper autour de la méthode openContainerById:callback: (TAGManager) pour les appelants, qui prend en charge les délais avant expiration.
Voici un exemple montrant que le chargement du conteneur peut prendre jusqu'à 0,1 seconde avant de revenir au conteneur par défaut:
NSTimeInterval timeout = 0.1;
TagManager *tagManager = [TagManager instance];
TAGContainerFuture *future =
[TAGContainerOpener openContainerWithId:@"GTM-XXXX"
tagManager:tagManager
openType:kTAGOpenTypePreferNonDefault
timeout:&timeout];
TAGContainer *container = [future get];
Si l'appelant souhaite être averti de manière asynchrone lorsque le conteneur est disponible, mais souhaite spécifier manuellement le délai avant expiration sur 0,5 seconde, il doit sous-classer TAGContainerOpenerNotifier, appeler openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) avec un délai avant expiration défini sur 0.5, puis ajouter l'implémentation à containerAvailable: (TAGContainerOpenerNotifier-p).
Fonctions de membre public statiques | |
| (id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Attend jusqu'à timeout secondes pour qu'un conteneur soit chargé (autre que par défaut ou actualisé en fonction de la valeur openType spécifiée) et renvoie un TAGContainerFuture. | |
| (inutile) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Attend jusqu'à timeout secondes pour qu'un conteneur soit chargé (autre que par défaut ou actualisé en fonction de la valeur openType spécifiée) et appelle un système d'alerte lorsque le conteneur est disponible. | |
| (NSTimeInterval) | + defaultTimeout |
| Renvoie le délai avant expiration par défaut pour la requête du conteneur. | |
Documentation sur les fonctions membres
| + (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
| tagManager: | (TAGManager *) | tagManager | |
| openType: | (TAGOpenType). | openType | |
| timeout: | (NSTimeInterval *) | délai avant expiration | |
Attend jusqu'à timeout secondes pour qu'un conteneur soit chargé (autre que par défaut ou actualisé en fonction de la valeur openType spécifiée) et renvoie un TAGContainerFuture.
Si le type d'ouverture est kTAGOpenTypePreferNonDefault, un conteneur autre que celui par défaut (enregistré ou récupéré sur le réseau) est chargé et TAGContainerFuture est débloqué dès que l'une des situations suivantes se produit:
- lorsqu'un conteneur enregistré est chargé.
- s'il n'y a pas de conteneur enregistré, si un conteneur réseau est chargé ou si une erreur réseau se produit.
- le minuteur expire.
Si une erreur réseau se produit ou si le minuteur expire, get (TAGContainerFuture-p) peut renvoyer un conteneur par défaut.
Si le type d'ouverture est kTAGOpenTypePreferFresh, un nouveau conteneur (enregistré ou récupéré sur le réseau) est chargé et TAGContainerFuture est débloqué dès que l'une des situations suivantes se produit:
- lorsqu'un nouveau conteneur enregistré est chargé.
- s'il n'y a pas de conteneur enregistré ou si un conteneur enregistré est obsolète, si un conteneur réseau est chargé ou si une erreur réseau se produit.
- le minuteur expire.
Si une erreur réseau se produit ou si le minuteur expire, get (TAGContainerFuture-p) peut contenir des valeurs par défaut ou un conteneur enregistré obsolète.
Si vous appelez l'une des méthodes openContainer une deuxième fois avec un containerId donné, une TAGContainerFuture sera renvoyée. get (TAGContainerFuture-p) renverra le même conteneur que le premier appel.
- Paramètres :
-
containerId Identifiant du conteneur à charger. tagManager Le gestionnaire TAGManager pour obtenir le conteneur délai avant expiration Nombre maximal de secondes d'attente avant le chargement du conteneur à partir du store enregistré. Si la valeur n'est nulle, la valeur defaultTimeout est utilisée. openType Choix de la manière d'ouvrir le conteneur.
- Renvoie :
- TAGContainerFuture qui attend jusqu'à
timeoutet renvoie le conteneur lorsqu'il est disponible.
| + (void) openContainerWithId: | (NSString *) | containerId | |
| tagManager: | (TAGManager *) | tagManager | |
| openType: | (TAGOpenType). | openType | |
| timeout: | (NSTimeInterval *) | délai avant expiration | |
| système d'alerte: | (id< TAGContainerOpenerNotifier >) | alerte | |
Attend jusqu'à timeout secondes pour qu'un conteneur soit chargé (nouveau ou non par défaut en fonction de la valeur openType spécifiée) et appelle un système d'alerte lorsque le conteneur est disponible.
Si le type d'ouverture est kTAGOpenTypePreferNonDefault, un conteneur autre que celui par défaut (enregistré ou récupéré sur le réseau) est chargé et transmis au système d'alerte. Le système d'alerte est appelé dès que l'un des événements suivants se produit:
- lorsqu'un conteneur enregistré est chargé.
- s'il n'y a pas de conteneur enregistré, si un conteneur réseau est chargé ou si une erreur réseau se produit.
- le minuteur expire.
Si une erreur réseau se produit ou si le minuteur expire, le conteneur transmis au système d'alerte est considéré comme un conteneur par défaut.
Si le type d'ouverture est kTAGOpenTypePreferFresh, un nouveau conteneur (enregistré ou récupéré sur le réseau) est chargé et transmis au système d'alerte. Le système d'alerte est appelé dès que l'un des événements suivants se produit:
- lorsqu'un nouveau conteneur enregistré est chargé.
- s'il n'y a pas de conteneur enregistré ou si un conteneur enregistré est obsolète, si un conteneur réseau est chargé ou si une erreur réseau se produit.
- le minuteur expire.
Si une erreur réseau se produit ou si le minuteur expire, le conteneur transmis au système d'alerte peut contenir des valeurs par défaut ou un conteneur enregistré obsolète.
Si vous appelez l'une des méthodes openContainer une deuxième fois avec un containerId donné, le même conteneur renvoyé par l'appel précédent sera transmis au système d'alerte dès qu'il sera disponible.
- Paramètres :
-
containerId Identifiant du conteneur à charger. tagManager Le gestionnaire TAGManager utilisé pour obtenir le conteneur openType Choix de la manière d'ouvrir le conteneur. délai avant expiration Nombre maximal de secondes d'attente avant le chargement du conteneur à partir du store enregistré. Si la valeur n'est nulle, la valeur defaultTimeout est utilisée. système d'alerte Système d'alerte facultatif qui sera appelé lorsque le conteneur sera disponible. Il sera appelé avec le nouveau conteneur, s'il est disponible et chargé avant le délai avant expiration. sinon il sera appelé avec un conteneur non neuf. Notez que le système d'alerte peut être appelé à partir d'un autre thread.
| + (NSTimeInterval) defaultTimeout |
Renvoie le délai avant expiration par défaut pour la requête du conteneur.
- Renvoie :
- Délai avant expiration par défaut en secondes.