TAGContainerOpener クラス リファレンス

TAGContainerOpener クラス リファレンス

概要

コンテナを開くためのヘルパークラス。

これは、タイムアウトをサポートする呼び出し元用の openContainerById:callback:(TAGManager)メソッドのラッパーです。

以下は、コンテナの読み込みを最大で 0.1 秒待機してからデフォルトのコンテナに戻す例です。

     NSTimeInterval timeout = 0.1;
     TagManager *tagManager = [TagManager instance];
     TAGContainerFuture *future =
         [TAGContainerOpener openContainerWithId:@"GTM-XXXX"
                                      tagManager:tagManager
                                        openType:kTAGOpenTypePreferNonDefault
                                         timeout:&timeout];
     TAGContainer *container = [future get];
 

呼び出し元がコンテナが利用可能になったときに非同期で通知を受け取ることを希望する場合、タイムアウトを 0.5 秒に手動で指定する場合、呼び出し元は TAGContainerOpenerNotifier をサブクラス化して、openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) を呼び出し、タイムアウトを 0.5 に設定して実装を containerAvailable: (TAGContainerOpenerNotifier-p) に実装を追加します。

静的パブリック メンバー関数

(id< TAGContainerFuture >)+ openContainerWithId:tagManager:openType:timeout:
 コンテナが読み込まれるまで最大 timeout 秒待機し(指定された openType に応じてデフォルト以外または新しい)。TAGContainerFuture を返します。
(void) + openContainerWithId:tagManager:openType:timeout:notifier:
 コンテナが読み込まれるまで最大 timeout 秒待機します(指定した openType に応じて、デフォルト以外または新しい)。コンテナが利用可能になると、Notifier を呼び出します。
(NSTimeInterval)+ defaultTimeout
 コンテナをリクエストする際のデフォルトのタイムアウトを返します。

メンバー関数のドキュメント

+ (id<TAGContainerFuture>) openContainerWithId: (NSString *)  containerId
タグ マネージャー: TAGManager *) tagManager
openType: TAGOpenType openType
timeout: (NSTimeInterval *) timeout

コンテナが読み込まれるまで最大 timeout 秒待機し(指定された openType に応じてデフォルト以外または新しい)。TAGContainerFuture を返します。

オープンタイプが kTAGOpenTypePreferNonDefault の場合、デフォルト以外の(保存またはネットワークから取得)コンテナが読み込まれ、次のいずれかが発生するとすぐに TAGContainerFuture のブロックが解除されます。

  • 保存されたコンテナが読み込まれます。
  • 保存されたコンテナがない場合、ネットワーク コンテナが読み込まれるか、ネットワーク エラーが発生する。
  • タイマーが切れます。

ネットワーク エラーが発生した場合やタイマーが切れた場合、get (TAGContainerFuture-p) はデフォルトのコンテナを返すことがあります。

オープンタイプが kTAGOpenTypePreferFresh の場合、新しい(保存またはネットワークから取得)コンテナが読み込まれ、次のいずれかが発生するとすぐに TAGContainerFuture のブロックが解除されます。

  • 新しく保存されたコンテナが読み込まれます。
  • 保存されたコンテナがない場合や、保存されたコンテナが最新ではない場合、ネットワーク コンテナが読み込まれるか、ネットワーク エラーが発生します。
  • タイマーが切れます。

ネットワーク エラーが発生した場合やタイマーが切れた場合、get (TAGContainerFuture-p) には、デフォルト値または古い保存済みコンテナが含まれる場合があります。

指定した containerId を使って、2 回目の openContainer メソッドを呼び出すと、TAGContainerFuture が返され、get (TAGContainerFuture-p) によって最初の呼び出しと同じコンテナが返されます。

パラメータ:
containerId読み込むコンテナの ID。
tagManagerコンテナを取得するための TAGManager
timeout保存済みストアからコンテナを読み込む際に待機する最大時間(秒)。nil の場合、defaultTimeout が使用されます。
openTypeコンテナを開く方法の選択。
戻り値:
最大 timeout を待機し、利用可能になり次第コンテナを返す TAGContainerFuture
+ (void) openContainerWithId: (NSString *)  containerId
タグ マネージャー: TAGManager *) tagManager
openType: TAGOpenType openType
timeout: (NSTimeInterval *) タイムアウト
Notifier: (id< TAGContainerOpenerNotifier >) Notifier

コンテナが読み込まれるまで最大 timeout 秒待機します(指定した openType に応じて、デフォルト以外または新しい)。コンテナが利用可能になると、Notifier を呼び出します。

オープンタイプが kTAGOpenTypePreferNonDefault の場合、デフォルト以外の(保存またはネットワークから取得)コンテナが読み込まれ、 Notifier に渡されます。次のいずれかが発生するとすぐに Notifier が呼び出されます。

  • 保存されたコンテナが読み込まれます。
  • 保存されたコンテナがない場合、ネットワーク コンテナが読み込まれるか、ネットワーク エラーが発生する。
  • タイマーが切れます。

ネットワーク エラーが発生した場合やタイマーが切れた場合、通知機能に渡されるコンテナはデフォルトのコンテナになります。

オープンなタイプが kTAGOpenTypePreferFresh の場合、新しい(保存またはネットワークから取得)コンテナが読み込まれ、 Notifier に渡されます。次のいずれかが発生するとすぐに Notifier が呼び出されます。

  • 新しく保存されたコンテナが読み込まれます。
  • 保存されたコンテナがない場合や、保存されたコンテナが最新ではない場合、ネットワーク コンテナが読み込まれるか、ネットワーク エラーが発生します。
  • タイマーが切れます。

ネットワーク エラーが発生した場合やタイマーが切れた場合、通知機能に渡されるコンテナにデフォルトが含まれているか、保存されたコンテナが古い可能性があります。

特定の containerId を使って、openContainer メソッドのいずれかを 2 回呼び出すと、利用可能になり次第、前の呼び出しで返された同じコンテナが Notifier に渡されます。

パラメータ:
containerId読み込むコンテナの ID。
tagManagerコンテナの取得に使用される TAGManager
openTypeコンテナを開く方法の選択。
timeout保存済みストアからコンテナを読み込む際に待機する最大時間(秒)。nil の場合、defaultTimeout が使用されます。
Notifierコンテナが利用可能になったときに呼び出されるオプションの Notifier。このメソッドは新しいコンテナで呼び出されます(利用可能で、タイムアウトの前に読み込まれる場合)。それ以外の場合は、新鮮でないコンテナで呼び出されます。Notifier は別のスレッドから呼び出される場合があります。
+(NSTimeInterval)defaultTimeout

コンテナをリクエストする際のデフォルトのタイムアウトを返します。

戻り値:
デフォルトのタイムアウト(秒単位)。