TByteRangeStream.ReadAt
إدارة المستندات، الأداء، التزامن
الوصف
تقرأ بايتات عند إزاحة مصدر مطلقة دون تغيير مؤشر TStream الموضعييتقاسم المستدعي المتزامنون جلبًا جاريًا واحدًا للمقطع المحاذى نفسه، بينما تُجلب المقاطع المجاورة المنتظرة معًا في طلب مصدر واحد محدود
الصيغة
Delphi
Function TByteRangeStream.ReadAt(Offset: Int64; Var Buffer; Count: LongInt): LongInt;المعاملات
| Offset | إزاحة المصدر المطلقة ذات الأساس صفر |
|---|---|
| Buffer | وجهة البايتات المُرجعة |
| Count | الحد الأقصى لعدد البايتات التي ستُقرأ |
قيم الإرجاع
| 0 | الإزاحة أو العدد غير صالح أو الإزاحة عند نهاية المصدر أو بعدها أو فشل طلب المصدر |
|---|---|
| >0 | عدد البايتات المنسوخة إلى Buffer |
ملاحظات
يُعرَّف TByteRangeStream في PDFlibNetPDF ويقبل بانيه CoalesceWindowMS التي تكون افتراضيًا ملّي ثانيتينتُطبق النافذة على أول مقطع غير مخزن مؤقتًا من كل نداء
ReadAt فقط؛ وتستمر المقاطع اللاحقة فورًا، ولا تنتظر نداءات Read الموضعية النافذةتعطّل قيمة الصفر تأخير التجميع الأولي مع الحفاظ على مشاركة الطيران الواحد للمقطع نفسه ودمج الطلبات المنتظرة سلفًا خلف قراءة مصدر أخرىيُسقف جلب المصدر المدموج الواحد عند 16 MiB، وتُسلسل دوال استدعاء المصدر فلا تحتاج تنفيذات دوال الاستدعاء إلى قفل نقل خاص بهالا تستدعِ من جديد التيار نفسه من دالة استدعاء مصدره، وأتلف التيار فقط بعد اكتمال جميع القراء النشطينيبطل
ClearCache جيل الذاكرة المؤقتة؛ وما يزال المستدعي المنتظرون سلفًا يتلقون بايتاتهم، لكن لا تستطيع الإكمالات القديمة إعادة تعبئة الذاكرة المؤقتة أو العدادات الممسوحة