IHPDFCustomStreamFilter
Дефинира reference-counted потребителски декодер, ползван от пайплайните на заредени stream филтри
Декларация
IHPDFCustomStreamFilter = interface(IInterface)
function GetFilterName: AnsiString;
function GetMode: THPDFCustomStreamFilterMode;
function GetInputSeekContract: THPDFCustomStreamSeekContract;
function GetOutputSeekContract: THPDFCustomStreamSeekContract;
function DecodePush(Input, Output: TStream;
const Request: THPDFCustomStreamFilterRequest;
out Diagnostic: AnsiString): Boolean;
function OpenPullStream(Input: TStream;
const Request: THPDFCustomStreamFilterRequest;
out DecodedStream: TStream;
out Diagnostic: AnsiString): Boolean;
end;
Параметри
Input е зает за времето на callback-а, Output е изолирана ограничена цел за push режим, а Request подава идентичност на стъпката, оставащ бюджет и отмяна
DecodedStream е притежаван от HotPDF след успешен pull резултат, а Diagnostic трябва да обясни false резултат
Върната стойност
Връщайте True само след като сте произвели пълен валиден резултат на стъпката
Бележки за употреба
- Извиква се само методът, избран от
Mode - Не освобождавайте, задържайте и не връщайте заетия
Inputпоток - Дълги операции трябва да проверяват
Request.CancellationTokenкооперативно - Изключенията се изолират като
dpsCustomFilterError,dpsBudgetExceededилиdpsCancelled - Callback-ите се изпълняват синхронно и извън заключването на регистъра