Асинхронное получение данных для подписи
THPDFSignatureEvidenceTask получает timestamp token, ответы OCSP и CRL в фоновых worker'ах, не привязывая HotPDF к конкретному HTTP-, proxy- или authentication-стеку
Запросы и транспорт
Каждый THPDFSignatureEvidenceRequest задаёт тип данных, URI, content type, тело запроса, correlation identifier и максимальный допустимый размер ответа
Transport callback получает один запрос, номер попытки (начиная с единицы) и cancellation token, а возвращает ответ, необязательную задержку перед retry, диагностический текст и один из статусов setsSucceeded, setsRetry, setsPermanentFailure или setsCancelled
Внутри callback можно использовать THTTPClient, Indy, WinHTTP, корпоративный proxy-клиент или собственный offline-сервис приложения
Повторы и параллелизм
THPDFSignatureEvidenceRetryPolicy.Default выполняет до трёх попыток, стартует с 250 миллисекунд, удваивает задержки до потолка в 10 секунд и ограничивает запрошенные сервером задержки retry 30 секундами
Число worker'ов ограничено на задачу, порядок запросов в массиве результатов остаётся стабильным, ожидание retry проверяет отмену каждые 50 миллисекунд, а исключения транспорта уходят в ветку повторов с сохранением диагностического сообщения
Результаты и отмена
SnapshotResults возвращает потокобезопасную глубокую копию, пока получение продолжается, WaitForResults ждёт завершения, а Cancel помечает стоящие в очереди и активные работы как отменённые через общий token
Результаты различают успех, постоянный сбой, исчерпанные повторы, отмену и слишком большие ответы, а также содержат число попыток, байты ответа и последний диагностический текст
Байты успешного timestamp можно подать в THPDFCMSSignOptions.GetSignatureTimeStamp, а байты OCSP и CRL — использовать для заполнения revocation-атрибутов подписи, записей DSS или THPDFCertificateValidationOptions