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를 서브클래스로 분류하고, 시간 제한을 0.5로 설정하여 openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener)를 호출한 후 구현을 사용 가능한 containerAvailable: (TAGContainerOpenerNotifier-p) 알림에 추가해야 합니다.

정적 공개 멤버 함수

(id< TAGContainerFuture >)+ openContainerWithId:tagManager:openType:timeout:
 컨테이너가 로드될 때까지 (지정된 openType에 따라 기본값 또는 최신 상태가 아님) 최대 timeout초 동안 대기하고 TAGContainerFuture를 반환합니다.
(void) + openContainerWithId:tagManager:openType:timeout:notifier:
 컨테이너가 로드될 때까지 (지정된 openType에 따라 기본값 또는 최신 상태가 아님) 최대 timeout초 동안 대기하고 컨테이너를 사용할 수 있을 때 알림 기능을 호출합니다.
(NSTimeInterval)+ defaultTimeout
 컨테이너 요청에 대한 기본 제한 시간을 반환합니다.

멤버 함수 문서

+ (id<TAGContainerFuture>) openContainerWithId: (NSString *) containerId
tagManager: (TAGManager *) tagManager
openType으로 변환합니다. (TAGOpenType) openType
timeout: (NSTimeInterval *) timeout

컨테이너가 로드될 때까지 (지정된 openType에 따라 기본값 또는 최신 상태가 아님) 최대 timeout초 동안 대기하고 TAGContainerFuture를 반환합니다.

공개 유형이 kTAGOpenTypePreferNonDefault인 경우 기본이 아닌 컨테이너 (저장되거나 네트워크에서 가져온 컨테이너)가 로드되고 다음 중 하나가 발생하는 즉시 TAGContainerFuture가 차단 해제됩니다.

  • 저장된 컨테이너가 로드됩니다.
  • 저장된 컨테이너가 없으면 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되면 get (TAGContainerFuture-p)이 기본 컨테이너를 반환할 수 있습니다.

공개 유형이 kTAGOpenTypePreferFresh인 경우 새 컨테이너 (저장되거나 네트워크에서 가져온 컨테이너)가 로드되고 다음 중 하나가 발생하는 즉시 TAGContainerFuture가 차단 해제됩니다.

  • 저장된 새로운 컨테이너가 로드됩니다.
  • 저장된 컨테이너가 없거나 저장된 컨테이너가 오래된 경우 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되면 get (TAGContainerFuture-p)에 기본값 또는 오래된 저장된 컨테이너가 포함될 수 있습니다.

지정된 containerId로 openContainer 메서드 중 하나를 두 번째로 호출하면 TAGContainerFuture이 반환되고 get (TAGContainerFuture-p)이 첫 번째 호출에서와 동일한 컨테이너를 반환합니다.

매개변수:
containerId로드할 컨테이너의 ID입니다.
tagManager컨테이너를 가져오기 위한 TAGManager입니다.
시간 초과저장된 저장소에서 컨테이너가 로드될 때까지 기다리는 최대 시간(초)입니다. nil인 경우 defaultTimeout이 사용됩니다.
openType컨테이너를 여는 방법에 대한 선택입니다.
반환:
최대 timeout까지 대기하고 사용 가능할 때 컨테이너를 반환하는 TAGContainerFuture입니다.
+ (void) openContainerWithId: (NSString *) containerId
tagManager: (TAGManager *) tagManager
openType으로 변환합니다. (TAGOpenType) openType
timeout: (NSTimeInterval *) 시간 제한
알림: (id< TAGContainerOpenerNotifier >) 알림

컨테이너가 로드될 때까지 (지정된 openType에 따라 기본값 또는 최신 상태가 아님) 최대 timeout초 동안 대기하고 컨테이너를 사용할 수 있을 때 알림 기능을 호출합니다.

공개 유형이 kTAGOpenTypePreferNonDefault인 경우 기본이 아닌 컨테이너 (저장되거나 네트워크에서 가져온 컨테이너)가 로드되어 알림 프로그램으로 전달됩니다. 알림자는 다음 중 하나가 발생하는 즉시 호출됩니다.

  • 저장된 컨테이너가 로드됩니다.
  • 저장된 컨테이너가 없으면 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되면 알리미로 전달되는 컨테이너가 기본 컨테이너가 됩니다.

공개 유형이 kTAGOpenTypePreferFresh이면 새로운 컨테이너 (저장되었거나 네트워크에서 가져온 컨테이너)가 로드되어 알림 프로그램으로 전달됩니다. 알림자는 다음 중 하나가 발생하는 즉시 호출됩니다.

  • 저장된 새로운 컨테이너가 로드됩니다.
  • 저장된 컨테이너가 없거나 저장된 컨테이너가 오래된 경우 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되면 알림으로 전달되는 컨테이너에 기본값 또는 오래된 저장된 컨테이너가 포함될 수 있습니다.

지정된 containerId로 openContainer 메서드 중 하나를 두 번째로 호출하면 이전 호출에서 반환된 동일한 컨테이너가 사용 가능해지는 즉시 알림자에 전달됩니다.

매개변수:
containerId로드할 컨테이너의 ID입니다.
tagManager컨테이너를 가져오는 데 사용되는 TAGManager입니다.
openType컨테이너를 여는 방법에 대한 선택입니다.
시간 초과저장된 저장소에서 컨테이너가 로드될 때까지 기다리는 최대 시간(초)입니다. nil인 경우 defaultTimeout이 사용됩니다.
알림컨테이너를 사용할 수 있을 때 호출되는 선택적 알림입니다. 사용할 수 있고 제한 시간 전에 로드된 경우 새 컨테이너로 호출되며, 그렇지 않은 경우 새 컨테이너로 호출됩니다. 알림자는 다른 스레드에서 호출될 수 있습니다.
+ (NSTimeInterval) defaultTimeout(기본 시간 제한)

컨테이너 요청에 대한 기본 제한 시간을 반환합니다.

반환:
기본 제한 시간(초)입니다.