tCurlBase
TCurlBase - базовый класс и для
tCurl, и для
tCurlMulti.
Его основная цель - предоставление
опционального потока для выполнения передач в фоне, чтобы оконные приложения
не казались "зависшими" во время потенциально блокирующих системных вызовов, таких как разрешение имён через DNS или функция
connect() .
Примечание:
tCurlBase спроектирован только как базовый класс, вам никогда не потребуется создавать экземпляры этого класса!
property Threaded: boolean; (default=False)
ПРи установке в TRUE включит использование фонового потока для этого объекта.
Все свойства, описанные ниже, теряют смысл при Threaded установленном в FALSE.
|
property OnWait: TNotifyEvent;
Это событие будет происходить каждые WaitInterval миллисекунд во время выполнения функции Perform
экземпляра класса tCurl или tCurlMulti.
Основная цель этого события - позволить приложению вызвать функцию ProcessMessages,
или произвести другие операции по обновлению GUI, и т.п.
Заметим, что в этот момент любое взаимодействие между GUI и библиотекой libcurl не является гарантировано 100% thread-safe,
поэтому старайтесь проделывать минимальное число операций внутри обработчиков событий при включенном threading.
|
property WaitInterval: LongInt; (default=1000 ms)
Промежуток времени, в миллисекундах, между вызовами событий OnWait или колбека WaitCallback.
|
property WaitCallback: tCurlWaitCallback;
По аналогии со свойством OnWait, позволяет задать C-образный колбек, а не обработчик события.
Портотип этого колбека таков:
type tCurlWaitCallback = procedure ( UserData:pointer ); cdecl;
Помните, что свойства OnWait и WaitCallback - взаимоисключающие, т.е. установка одного автоматически установит другое в NIL.
|
property WaitData: tCurlWaitCallback;
Указатель на произвольные данные, передаваемые в параметре UserData функции WaitCallback.
|