JCReaderWatcher
@protocol JCReaderWatcher <NSObject>
Протокол поиска и контроля токенов на ридерах.
Протокол предоставляет возможность работы в одном из двух режимов:
- постоянный контроль подключения/отключения токенов;
- получение списка подключенных токенов.
Важно
Нельзя работать одновременно в двух режимах.
Методы
startWithQueue
- (BOOL)startWithQueue:(dispatch_queue_t _Nullable)queue notificationCenter:(NSNotificationCenter * _Nullable)notificationCenter tokenAttached:(JCTokenAttachedHandlerType _Nullable)tokenAttached tokenDetached:(JCTokenDetachedHandlerType _Nullable)tokenDetached watcherStopped:(JCCompleteHandlerType _Nullable)watcherStopped;
Запуск операции контроля подключения/отключения токенов на ридерах. Метод асинхронный.
Для получения изменений в составе токенов необходимо передать
tokenAttachedHandler, tokenDetachedHandler, watcherStoppedHandler и/или notificationCenter.
Операцию контроля подключения/отключения токенов можно прервать 2-мя способами:
- вызвать метод stop;
- вызвать метод finalize у JCManager.
Пример: Мониторинг токенов.
Аргументы:
- queue (dispatch_queue_t) - очередь, в которой вызываются методы
notificationCenter и коллбеки tokenAttachedHandler, tokenDetachedHandler, watcherStoppedHandler;
- notificationCenter (NSNotificationCenter) - центр нотификации, сообщающий об изменениях в составе токенов.
Отправляет уведомления JCTokenAttachedNotification / JCTokenDetachedNotification при подключении / отключении токена.
Объект токена хранится в параметре JCNotificationParamToken словаря userInfo соответствующего уведомления;
- tokenAttached (JCTokenAttachedHandlerType) - коллбек, вызываемый при подключении токена;
- tokenDetached (JCTokenDetachedHandlerType) - коллбек, вызываемый при отключении токена;
- watcherStopped (JCCompleteHandlerType) - коллбек, вызываемый при остановки процесса контроля токенов.
Результат:
- Возвращает значение типа BOOL:
YES
- операция запущена;
NO
- операция не запущена.
getTokensWithQueue
- (BOOL)getTokensWithQueue:(dispatch_queue_t _Nullable)queue attempts:(NSUInteger)attempts attemptsDelay:(NSTimeInterval)attemptsDelay predicate:(JCTokenPredicateType _Nullable)predicate handler:(JCTokensHandlerType)handler;
Запуск операции получения подключенных токенов. Метод асинхронный.
Операцию получения подключенных токенов можно прервать 3-мя способами:
- передать предикат (аргумент predicate) и в необходимый момент установить stop в
YES
;
- вызвать метод stop;
- вызвать метод finalize у JCManager.
Пример: Получение списка токенов.
Аргументы:
- queue (dispatch_queue_t) - очередь, в которой вызываются методы handler;
- attempts (NSUInteger) - количество попыток выполнения операции в случае отсутствия токенов.
Некоторые ридеры, например bR301 BLE, не всегда моментально
появляются в системе и им нужно некоторое время на подключение.
Данный аргумент дает возможность несколько раз выполнить операцию
для гарантированного определения подключенных ридеров.;
- attemptsDelay (NSTimeInterval) - задержка в между попытками выполнения операции (в секундах);
- predicate (JCTokenPredicateType) - предикат для фильтрации токенов. При помощи него можно выбирать необходимые токены и прервать процесс поиска токенов;
- handler (JCTokensHandlerType) - обработчик результата выполнения операции.
Результат:
- Возвращает значение типа BOOL:
YES
- операция запущена;
NO
- операция не запущена.
stop
Запуск процесса прерывания текущей операции. Метод асинхронный.
Результат:
- Возвращает значение типа BOOL:
YES
- процесс прерывания текущей операции запущен;
NO
- процесс прерывания текущей операции не запущен.