Crash-Isolated Codec Workers

HotPDF می‌تواند decode تصاویر پرریسک DCTDecode، JPXDecode و JBIG2Decode را از پردازهٔ میزبان بیرون ببرد

Isolation modes

وقتی یک worker در دسترس درخواستی را پذیرفت، cimAutomatic ورودی ناموفق یا مخرب را در پردازهٔ میزبان دوباره امتحان نمی‌کند

Process boundary

هر درخواست decode در یک پردازهٔ مخفی تازه اجرا می‌شود که به یک Windows Job Object تک‌پردازه‌ای اختصاص داده شده است

Configuration

PDF.CodecIsolationMode := cimRequired;
PDF.CodecWorkerExecutable :=
  'C:\Program Files\MyApp\HotPDFCodecWorker.exe';
PDF.CodecWorkerTimeoutMilliseconds := 5000;
PDF.CodecWorkerMemoryLimitBytes := 256 * 1024 * 1024;

Bitmap := PDF.ExtractLoadedImage(0);
if Bitmap = nil then
begin
  PDF.GetLastCodecWorkerInfo(Info);
  Writeln(Ord(Info.Status), ': ', Info.ErrorMessage);
end;

An empty CodecWorkerExecutable resolves to HotPDFCodecWorker.exe beside the current application

Telemetry

GetLastCodecWorkerInfo وضعیت، شناسهٔ پردازه، exit code، میلی‌ثانیه‌های سپری‌شده و یک diagnostic محدود سمت میزبان را گزارش می‌کند

GetLastJPEGReducedDecodeInfo پس از یک درخواست JPEG کاهش‌یافتهٔ ایزوله، هندسهٔ مبدأ، مقیاس‌شده، خروجی و scanline را گزارش می‌کند

وضعیت‌های متمایز، workerهای در دسترس‌نبودنی یا غیرقابل‌راه‌اندازی، timeout، crash، رد شدن decode، ناسازگاری پروتکل و سقف‌های خروجی decode‌شده را پوشش می‌دهند

Build and deployment

build-HotPDF-Codec-Worker.cmd

دستور build دو worker جدا برای Win32 و Win64 را زیر tools\CodecWorker\<platform>\Release تولید می‌کند؛ worker متناسب با معماری پردازهٔ میزبان را deploy کنید

APIهای مرتبط