BIO_F_BUFFER(3ssl)

الاسم
BIO_get_buffer_num_lines, BIO_set_read_buffer_size, BIO_set_write_buffer_size, BIO_set_buffer_size, BIO_set_buffer_read_data, BIO_f_buffer - BIO وسيط

موجز
 #include <openssl/bio.h>

 const BIO_METHOD *BIO_f_buffer(void);

 long BIO_get_buffer_num_lines(BIO *b);
 long BIO_set_read_buffer_size(BIO *b, long size);
 long BIO_set_write_buffer_size(BIO *b, long size);
 long BIO_set_buffer_size(BIO *b, long size);
 long BIO_set_buffer_read_data(BIO *b, void *buf, long num);

الوصف
تُرجع الدالة BIO_f_buffer() أسلوب BIO الوسيط.

البيانات المكتوبة إلى BIO وسيط تُخزّن مؤقتًا وتُكتب دوريًا إلى BIO التالي في السلسلة. البيانات المقروءة من BIO وسيط تأتي من خبيئة داخلية تملأ من BIO التالي في السلسلة. كل من BIO_gets() و BIO_puts() مدعومتان.

استدعاء BIO_reset() على BIO وسيط يمسح أي بيانات مخزنة مؤقتًا.

تُرجع الدالة BIO_get_buffer_num_lines() عدد الأسطر المخزنة مؤقتًا حاليًا.

تضبط الدوال BIO_set_read_buffer_size() و BIO_set_write_buffer_size() و BIO_set_buffer_size() حجم خبيئة القراءة أو الكتابة أو كليهما إلى size. الحجم المبدئي للخبيئة هو DEFAULT_BUFFER_SIZE، حاليًا 4096. أي محاولة لتقليل حجم الخبيئة تحت DEFAULT_BUFFER_SIZE تُتجاهل. أي بيانات مخزنة مؤقتًا تُمسح عند تغيير حجم الخبيئة.

تمسح الدالة BIO_set_buffer_read_data() خبيئة القراءة وتملؤها بـ num بايت من buf. إذا كان num أكبر من حجم الخبيئة الحالي، تُوسّع الخبيئة.

ملاحظات
هذه الدوال، بخلاف BIO_f_buffer()، نُفذت كوحدات ماكرو.

تنفذ BIOs الوسيطة BIO_read_ex() و BIO_gets() باستخدام عمليات BIO_read_ex() على BIO التالي في السلسلة وتخزين النتيجة في خبيئة داخلية، منها تُعاد البايتات إلى المستدعي حسب ما يناسب الاستدعاء؛ تُضمن BIO_gets() إعطاء المستدعي سطرًا كاملاً، وتُضمن BIO_read_ex() إعطاء المستدعي عدد البايتات التي يطلبها، ما لم يحدث خطأ أو تُبلغ نهاية الاتصال في BIO التالي. بإضافة BIO وسيط إلى بداية سلسلة، يمكن بالتالي توفير وظيفة BIO_gets() أو BIO_read_ex() بالحجم الدقيق إذا كانت BIOs التالية لا تدعمها.

لا تُضف أكثر من BIO_f_buffer() واحد إلى سلسلة BIO. نتيجة فعل ذلك ستفرض قراءة كاملة لحجم الخبيئة الداخلية لـ BIO_f_buffer() العلوي، والتي لا تقل عن 4 كيلوبايت.

تُكتب البيانات فقط إلى BIO التالي في السلسلة عندما تمتلئ خبيئة الكتابة أو عند استدعاء BIO_flush(). لذلك من المهم استدعاء BIO_flush() كلما يجب كتابة أي بيانات معلقة، مثل عند إزالة BIO وسيط باستخدام BIO_pop(). قد تحتاج BIO_flush() إلى إعادة المحاولة إذا كان BIO المصدر/المصرف النهائي غير محظور.

القيم المُرجعة
تُرجع الدالة BIO_f_buffer() أسلوب BIO الوسيط.

تُرجع الدالة BIO_get_buffer_num_lines() عدد الأسطر المخزنة مؤقتًا (قد يكون 0) أو قيمة سالبة في حالة الأخطاء.

تُرجع الدوال BIO_set_read_buffer_size() و BIO_set_write_buffer_size() و BIO_set_buffer_size() 1 إذا غُيّر حجم الخبيئة بنجاح أو <=0 للفشل.

تُرجع الدالة BIO_set_buffer_read_data() 1 إذا ضُبطت البيانات بشكل صحيح أو <=0 إذا حدث خطأ.

انظر أيضًا
bio(7)، BIO_reset(3)، BIO_flush(3)، BIO_pop(3)، BIO_ctrl(3).

حقوق النسخ
حقوق النشر 2000-2020 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.