From a71281e01ca0761d426b3599c1b45b700057591a Mon Sep 17 00:00:00 2001 From: Hisham Mahgoub Date: Thu, 4 Jun 2026 08:04:51 +0300 Subject: [PATCH] correct arabic wrong definitions --- README.ar.md | 685 ++++++++++++++++++++++++++------------------------- 1 file changed, 343 insertions(+), 342 deletions(-) diff --git a/README.ar.md b/README.ar.md index 8c5d8f4..58b71a7 100644 --- a/README.ar.md +++ b/README.ar.md @@ -2,30 +2,30 @@ [[English]](readme.md) -
- مكتبة لإنشاء خوادم بروتوكول نقل النص الترابطي (HTTP) مع دعم WebSocket بلغة الأسس. تعتمد هذه المكتبة على مكتبة civetweb. ## الإضافة إلى المشروع أضف المكتبة لمشروعك باستخدام مدير الحزم: +
+ ``` اشمل "مـحا"؛ مـحا.اشمل_حزمة("Alusus/Http@0.3"، "بـننت.أسس")؛ ``` -
+
``` import "Apm.alusus"; Apm.importPackage("Alusus/Http@0.3"); ``` -
- ## مثال +
+ ``` اشمل "مـتم/طـرفية.أسس"؛ اشمل "مـتم/نـص.أسس"؛ @@ -78,7 +78,7 @@ Apm.importPackage("Alusus/Http@0.3"); أخـتبار_الوحدة.ابدا()؛ ``` -
+
``` import "Srl/Console.alusus"; @@ -131,14 +131,14 @@ module TestModule { TestModule.start(); ``` -
- ## دعم WebSocket تتضمن هذه المكتبة الآن دعماً شاملاً لـ WebSocket للتواصل الثنائي الفوري. راجع [توثيق WebSocket الكامل](websocket_documentation.ar.md) للحصول على معلومات مفصلة. ### مثال سريع لـ WebSocket +
+ ``` // تسجيل معالج WebSocket بـننت.حدد_معالج_ويب_سوكت( @@ -154,7 +154,7 @@ TestModule.start(); بـننت.اكتب_نصا_في_ويب_سوكت(اتصال, "مرحباً WebSocket!")؛ ``` -
+
```alusus // Register WebSocket handler @@ -171,21 +171,21 @@ Http.setWebSocketHandler( Http.writeTextToWebSocket(connection, "Hello WebSocket!"); ``` -
- راجع مجد الأمثلة للحصول على مثال كامل. ## الأصناف والوظائف ### سـياق (Context) +
+ ``` صنف سـياق { عرف علم_التوقف: صحيح؛ } ``` -
+
``` class Context{ @@ -193,45 +193,44 @@ class Context{ }; ``` -
- يُستعمل هذا الصنف لتخزين المعلومات الخاصة بالسياق. #### علم_التوقف (stopFlag) +
+ ``` عرف علم_التوقف: صحيح؛ ``` -
+
``` def stopFlag: int ``` -
- يحدد إن كان يجب إيقاف حلقة الأحداث. - ### مـناديات (Callbacks) +
+ ``` صنف مـناديات { عرف بداية_الطلب: منادى_الطلب؛ - عرف نهاية_الطلب: مؤشر[دالة(اتصال:مؤشر[اتصال]، رمز_حالة_الرد: صحيح): صحيح]؛ - عرف تسجيل_رسالة: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مؤشر[محرف]): صحيح]؛ - عرف تسجيل_ولوج: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مؤشر[محرف]): صحيح]؛ - عرف تهيئة_طما:مؤشر[دالة(سياق_طما:مؤشر[فراغ]، بيانات_المستخدم: مؤشر[فراغ]): صحيح]؛ - عرف غلق_الاتصال: مؤشر[دالة(اتصال:مؤشر[اتصال]): فراغ]؛ + عرف نهاية_الطلب: مؤشر[دالة(اتصال:مؤشر[اتصال]، رمز_حالة_الرد: صحيح)]؛ + عرف تسجيل_رسالة: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مـؤشر_محارف): صحيح]؛ + عرف تسجيل_ولوج: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مـؤشر_محارف): صحيح]؛ + عرف تهيئة_طما:مؤشر[دالة(سياق_طما:مؤشر[فـراغ]، بيانات_المستخدم: مؤشر[فـراغ]): صحيح]؛ + عرف غلق_الاتصال: مؤشر[دالة(اتصال:مؤشر[اتصال]): فـراغ]؛ عرف خطأ_بننف: مؤشر[دالة(اتصال:مؤشر[اتصال]، الحالة: صحيح، رسالة: مؤشر[مصفوفة[محرف]]): صحيح]؛ - عرف تهيئة_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فراغ]؛ - عرف نهاية_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فراغ]؛ - عرف تهيئة_الموضوع: مؤشر[دالة(سياق:مؤشر[سياق]، نمط_المسلك: صحيح): فراغ]؛ + عرف تهيئة_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فـراغ]؛ + عرف نهاية_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فـراغ]؛ + عرف تهيئة_الموضوع: مؤشر[دالة(سياق:مؤشر[سياق]، نمط_المسلك: صحيح): فـراغ]؛ } ``` -
+
``` class Callbacks{ @@ -248,25 +247,23 @@ class Callbacks{ }; ``` -
- يحتوي هذا الصنف على المناديات الأساسية التي يمكن استعمالها مع بروتوكول ب.ن.ن.ف. كل منادى هو مؤشر إلى دالة يستدعيها السيرفر. #### بداية_الطلب (beginRequest) +
+ ``` عرف بداية_الطلب: منادى_الطلب؛ ``` -
+
``` -def beginRequest: RequestCallback +def beginRequest: RequestCallback; ``` -
- يستدعيها الخادم عند بدء طلب ما. * `0`: في حال لم يتم معالجة الطلب. @@ -274,34 +271,34 @@ def beginRequest: RequestCallback #### نهاية_الطلب (endRequest) +
+ ``` -عرف نهاية_الطلب: مؤشر[دالة(اتصال:مؤشر[اتصال]، رمز_حالة_الرد: صحيح): صحيح]؛ +عرف نهاية_الطلب: مؤشر[دالة(اتصال:مؤشر[اتصال]، رمز_حالة_الرد: صحيح)]؛ ``` -
+
``` -def endRequest: ptr[func (connection: ptr[Connection], replyStatusCode: Int)] +def endRequest: ptr[func (connection: ptr[Connection], replyStatusCode: Int)]; ``` -
- يُستدعى عند إنهاء الطلب على اتصال معين وبرمز حالة رد معين. #### تسجيل_رسالة (logMessage) +
+ ``` -عرف تسجيل_رسالة: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مؤشر[محرف]): صحيح]؛ +عرف تسجيل_رسالة: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مـؤشر_محارف: صحيح]؛ ``` -
+
``` -def logMessage: ptr[func (connection: ptr[Connection], message: CharsPtr): Int] +def logMessage: ptr[func (connection: ptr[Connection], message: CharsPtr): Int]; ``` -
- يستعمل لتسجيل رسالة معينة على اتصال معين. * `0`: يتم استعمال الروتين المعتاد لتسجيل الرسائل. @@ -309,18 +306,18 @@ def logMessage: ptr[func (connection: ptr[Connection], message: CharsPtr): Int] #### تسجيل_ولوج (logAccess) +
+ ``` -عرف تسجيل_ولوج: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مؤشر[محرف]): صحيح]؛ +عرف تسجيل_ولوج: مؤشر[دالة(اتصال:مؤشر[اتصال]، رسالة: مـؤشر_محارف): صحيح]؛ ``` -
+
``` -def logAccess: ptr[func (connection: ptr[Connection], message: CharsPtr): Int] +def logAccess: ptr[func (connection: ptr[Connection], message: CharsPtr): Int]; ``` -
- يستعمل لتسجيل رسالة على اتصال معين لتوضيح حالة الوصول. * `0`: يتم استعمال الروتين المعتاد لتسجيل رسائل الوصول. @@ -328,18 +325,18 @@ def logAccess: ptr[func (connection: ptr[Connection], message: CharsPtr): Int] #### تهيئة_طما (initSsl) +
+ ``` -عرف تهيئة_طما:مؤشر[دالة(سياق_طما:مؤشر[فراغ]، بيانات_المستخدم: مؤشر[فراغ]): صحيح]؛ +عرف تهيئة_طما:مؤشر[دالة(سياق_طما:مؤشر[فـراغ]، بيانات_المستخدم: مؤشر[فـراغ]): صحيح]؛ ``` -
+
``` -def initSsl: ptr[func (sslContext: ptr[Void], userData: ptr[Void]): Int] +def initSsl: ptr[func (sslContext: ptr[Void], userData: ptr[Void]): Int]; ``` -
- يُستدعى عند تهيئة بروتوكول طبقة المقابل الآمنة (SSL). * `0`: يجب على المكتبة إعداد شهادة ط.م.آ. @@ -348,34 +345,34 @@ def initSsl: ptr[func (sslContext: ptr[Void], userData: ptr[Void]): Int] #### غلق_الاتصال (connectionClose) +
+ ``` -عرف غلق_الاتصال: مؤشر[دالة(اتصال:مؤشر[اتصال]): فراغ]؛ +عرف غلق_الاتصال: مؤشر[دالة(اتصال:مؤشر[اتصال]): فـراغ]؛ ``` -
+
``` -def connectionClose: ptr[func (connection: ptr[Connection]): Void] +def connectionClose: ptr[func (connection: ptr[Connection]): Void]; ``` -
- يُستدعى عند إغلاق اتصال. #### خطأ_بننف (httpError) +
+ ``` عرف خطأ_بننف: مؤشر[دالة(اتصال:مؤشر[اتصال]، الحالة: صحيح، رسالة: مؤشر[مصفوفة[محرف]]): صحيح]؛ ``` -
+
``` -def httpError: ptr[func (connection: ptr[Connection], status: Int, msg: ptr[array[Char]]): Int] +def httpError: ptr[func (connection: ptr[Connection], status: Int, msg: ptr[array[Char]]): Int]; ``` -
- يستدعى عند حصول خطأ على اتصال ما مع الحالة ورسالة توضح الخطأ. * `0`: في حال قامت الدالة بإرسال صفحة الخطأ بنفسها. @@ -383,75 +380,76 @@ def httpError: ptr[func (connection: ptr[Connection], status: Int, msg: ptr[arra #### تهيئة_السياق (initContext) +
+ ``` -عرف تهيئة_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فراغ]؛ +عرف تهيئة_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فـراغ]؛ ``` -
+
``` -def initContext: ptr[func (context: ptr[Context]): Void] +def initContext: ptr[func (context: ptr[Context]): Void]; ``` -
- يُستدعى لتهيئة السياق المستعمل في مسلك ما. #### نهاية_السياق (exitContext) +
+ ``` -عرف نهاية_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فراغ]؛ +عرف نهاية_السياق: مؤشر[دالة(سياق:مؤشر[سياق]): فـراغ]؛ ``` -
+
``` -def exitContext: ptr[func (context: ptr[Context]): Void] +def exitContext: ptr[func (context: ptr[Context]): Void]; ``` -
- يُستدعى عند إنهاء سياق. #### تهيئة_الموضوع (initThread) +
+ ``` -عرف تهيئة_الموضوع: مؤشر[دالة(سياق:مؤشر[سياق]، نمط_المسلك: صحيح): فراغ]؛ +عرف تهيئة_الموضوع: مؤشر[دالة(سياق:مؤشر[سياق]، نمط_المسلك: صحيح): فـراغ]؛ ``` -
+
``` -def initThread: ptr[func (context: ptr[Context], threadType: Int): Void] +def initThread: ptr[func (context: ptr[Context], threadType: Int): Void]; ``` -
- يُستدعى لتهيئة مسلك بسياق ما مع تحديد نمط المسلك. - ### مـعلومات_الطلب (RequestInfo) +
+ ``` صنف مـعلومات_الطلب { - عرف طريقة_الطلب: مؤشر[محرف]؛ - عرف معرف_الطلب: مؤشر[محرف]؛ - عرف المعرف_المحلي: مؤشر[محرف]؛ - عرف إصدار_بننف: مؤشر[محرف]؛ - عرف نص_الاستعلام: مؤشر[محرف]؛ - عرف المستخدم_البعيد: مؤشر[محرف]؛ + عرف طريقة_الطلب: مـؤشر_محارف؛ + عرف معرف_الطلب: مـؤشر_محارف؛ + عرف المعرف_المحلي: مـؤشر_محارف؛ + عرف إصدار_بننف: مـؤشر_محارف؛ + عرف نص_الاستعلام: مـؤشر_محارف؛ + عرف المستخدم_البعيد: مـؤشر_محارف؛ عرف العنوان_البعيد: مصفوفة[محرف، 48]؛ عرف طول_المحتوى: صحيح[64]؛ عرف المنفذ_البعيد: صحيح؛ عرف مشفر: صحيح؛ - عرف بيانات_المستخدم: مؤشر[فراغ]؛ - عرف بيانات_الاتصال: مؤشر[فراغ]؛ + عرف بيانات_المستخدم: مؤشر[فـراغ]؛ + عرف بيانات_الاتصال: مؤشر[فـراغ]؛ عرف عدد_الترويسات: صحيح؛ عرف ترويسات_بننف: مصفوفة[ترويسة، 64]؛ } ``` -
+
``` class RequestInfo { @@ -472,245 +470,244 @@ class RequestInfo { }; ``` -
- يستعمل هذا الصنف لتخزين المعلومات الأساسية عن طلب ما. #### طريقة_الطلب (requestMethod) +
+ ``` -عرف طريقة_الطلب: مؤشر[محرف]؛ +عرف طريقة_الطلب: مـؤشر_محارف؛ ``` -
+
``` -def requestMethod: CharsPtr +def requestMethod: CharsPtr; ``` -
- نوع الطلب المستخدم مثلاً: GET. #### معرف_الطلب (requestUri) +
+ ``` -عرف معرف_الطلب: مؤشر[محرف]؛ +عرف معرف_الطلب: مـؤشر_محارف؛ ``` -
+
``` -def requestUri: CharsPtr +def requestUri: CharsPtr; ``` -
- الرابط الذي نرسل عليه الطلب. #### المعرف_المحلي (localUri) +
+ ``` -عرف المعرف_المحلي: مؤشر[محرف]؛ +عرف المعرف_المحلي: مـؤشر_محارف؛ ``` -
+
``` -def localUri: CharsPtr +def localUri: CharsPtr; ``` -
- الرابط المحلي للطلب، يمكن استعماله من أجل الطلبات ضمن نفس الخادم. #### إصدار_بننف (httpVersion) +
+ ``` -عرف إصدار_بننف: مؤشر[محرف]؛ +عرف إصدار_بننف: مـؤشر_محارف؛ ``` -
+
``` -def httpVersion: CharsPtr +def httpVersion: CharsPtr; ``` -
- نسخة البروتوكول المستعمل في هذا الطلب. #### نص_الاستعلام (queryString) +
+ ``` -عرف نص_الاستعلام: مؤشر[محرف]؛ +عرف نص_الاستعلام: مـؤشر_محارف؛ ``` -
+
``` -def queryString: CharsPtr +def queryString: CharsPtr; ``` -
- بارامترات الطلب الموجودة في الرابط. #### المستخدم_البعيد (remoteUser) +
+ ``` -عرف المستخدم_البعيد: مؤشر[محرف]؛ +عرف المستخدم_البعيد: مـؤشر_محارف؛ ``` -
+
``` -def remoteUser: CharsPtr +def remoteUser: CharsPtr; ``` -
- المستخدم البعيد الذي نتعامل معه. #### العنوان_البعيد (remoteAddr) +
+ ``` عرف العنوان_البعيد: مصفوفة[محرف، 48]؛ ``` -
+
``` -def remoteAddr: array[Char, 48] +def remoteAddr: array[Char, 48]; ``` -
- عنوان ال IP للمستخدم البعيد. #### طول_المحتوى (contentLength) +
+ ``` عرف طول_المحتوى: صحيح[64]؛ ``` -
+
``` -def contentLength: Int[64] +def contentLength: Int[64]; ``` -
- طول جسم الطلب مقدراً بالبايت، و يكون -1 في حال لم يكن الطول محدداً. #### المنفذ_البعيد (remotePort) +
+ ``` عرف المنفذ_البعيد: صحيح؛ ``` -
+
``` -def remotePort: Int +def remotePort: Int; ``` -
- المنفذ المستعمل على جهاز المستخدم البعيد. #### مشفر (isSsl) +
+ ``` عرف مشفر: صحيح؛ ``` -
+
``` -def isSsl: Int +def isSsl: Int; ``` -
- هل الاتصال مشفر بتقنية ط.م.آ؟ #### بيانات_المستخدم (userData) +
+ ``` -عرف بيانات_المستخدم: مؤشر[فراغ]؛ +عرف بيانات_المستخدم: مؤشر[فـراغ]؛ ``` -
+
``` -def userData: ptr[Void] +def userData: ptr[Void]; ``` -
- بيانات خاصة بالمستخدم تُمرر إلى دالة `شغل_الخادم`. #### بيانات_الاتصال (connData) +
+ ``` -عرف بيانات_الاتصال: مؤشر[فراغ]؛ +عرف بيانات_الاتصال: مؤشر[فـراغ]؛ ``` -
+
``` -def connData: ptr[Void] +def connData: ptr[Void]; ``` -
- بيانات خاصة بالاتصال. #### عدد_الترويسات (numberHeaders) +
+ ``` عرف عدد_الترويسات: صحيح؛ ``` -
+
``` -def numberHeaders: Int +def numberHeaders: Int; ``` -
- عدد ترويسات الطلب. #### ترويسات_بننف (httpHeaders) +
+ ``` عرف ترويسات_بننف: مصفوفة[ترويسة، 64]؛ ``` -
+
``` -def httpHeaders: array[Header, 64] +def httpHeaders: array[Header, 64]; ``` -
- الترويسات الخاصة بالطلب. - ### تـرويسة (Header) +
+ ``` صنف تـرويسة { - عرف اسم: مؤشر[محرف]؛ - عرف قيمة: مؤشر[محرف]؛ + عرف اسم: مـؤشر_محارف؛ + عرف قيمة: مـؤشر_محارف؛ } ``` -
+
``` class Header { @@ -719,45 +716,44 @@ class Header { }; ``` -
- يستعمل هذا الصنف لتخزين بيانات ترويسة للطلب. #### اسم (name) +
+ ``` -عرف اسم: مؤشر[محرف]؛ +عرف اسم: مـؤشر_محارف؛ ``` -
+
``` def name: CharsPtr ``` -
- اسم الترويسة، و هي بمثابة مفتاح. #### قيمة (value) +
+ ``` -عرف قيمة: مؤشر[محرف]؛ +عرف قيمة: مـؤشر_محارف؛ ``` -
+
``` def value: CharsPtr ``` -
- قيمة الترويسة و هي بمثابة القيمة المخزنة بهذا المفتاح. - ### اتـصال (Connection) +
+ ``` صنف اتـصال { عرف معلومات_الطلب: مؤشر[مـعلومات_الطلب]؛ @@ -772,8 +768,8 @@ def value: CharsPtr عرف المحتوى_المستهلك: صحيح[64]؛ عرف مقطع: صحيح؛ عرف باقي_التقطيع: كلمة[64]؛ - عرف صوان: مؤشر[محرف]؛ - عرف معلومات_المسار: مؤشر[محرف]؛ + عرف صوان: مـؤشر_محارف؛ + عرف معلومات_المسار: مـؤشر_محارف؛ عرف يجب_الاغلاق: صحيح؛ عرف معالج_الاخطاء: صحيح؛ عرف خطأ_داخلي: صحيح؛ @@ -788,7 +784,7 @@ def value: CharsPtr } ``` -
+
``` class Connection { @@ -820,184 +816,182 @@ class Connection { }; ``` -
- يستعمل هذا الصنف لتخزين المعلومات المختلفة عن الاتصال. #### معلومات_الطلب (requestInfo) +
+ ``` عرف معلومات_الطلب: مؤشر[مـعلومات_الطلب]؛ ``` -
+
``` -def requestInfo: ptr[RequestInfo] +def requestInfo: ptr[RequestInfo]; ``` -
- معلومات الطلب المرافق للاتصال. #### سياق (context) +
+ ``` عرف سياق: مؤشر[سـياق]؛ ``` -
+
``` -def context: ptr[Context] +def context: ptr[Context]; ``` -
- معلومات السياق المستعمل في هذا الاتصال. #### طما (ssl) +
+ ``` عرف طما: مؤشر؛ ``` -
+
``` -def ssl: ptr +def ssl: ptr; ``` -
- واصف بروتوكول ط.م.ا. #### سياق_طما_للعميل (clientSslContext) +
+ ``` عرف سياق_طما_للعميل: مؤشر؛ ``` -
+
``` -def clientSslContext: ptr +def clientSslContext: ptr; ``` -
- السياق الخاص بالمستخدم وفق بروتوكول ط.م.ا. #### عميل (client) +
+ ``` عرف عميل: مؤشر؛ ``` -
+
``` -def client: ptr +def client: ptr; ``` -
- العميل المتصل عبر هذا الاتصال. #### موعد_الاتصال (connectionBirthTime) +
+ ``` عرف موعد_الاتصال: صحيح؛ ``` -
+
``` -def connectionBirthTime: Int +def connectionBirthTime: Int; ``` -
- الوقت الذي تم فيه إنشاء الاتصال. #### وقت_الطلب (requestTime) +
+ ``` عرف وقت_الطلب: صحيح؛ ``` -
+
``` -def requestTime: Int +def requestTime: Int; ``` -
- الوقت الذي تم فيه إنشاء الاتصال بالنسبة لوقت الخادم. #### عدد_البايت_المرسلة (numberBytesSent) +
+ ``` عرف عدد_البايت_المرسلة: صحيح[64]؛ ``` -
+
``` -def numberBytesSent: int[64] +def numberBytesSent: int[64]; ``` -
- عدد البايتات التي تم إرسالها إلى العميل. #### حجم_المحتوى (contentLen) +
+ ``` عرف حجم_المحتوى: صحيح[64]؛ ``` -
+
``` -def contentLen: int[64] +def contentLen: int[64]; ``` -
- قيمة الترويسة حجم_المحتوى. #### المحتوى_المستهلك (consumedContent) +
+ ``` عرف المحتوى_المستهلك: صحيح[64]؛ ``` -
+
``` -def consumedContent: int[64] +def consumedContent: int[64]; ``` -
- عدد بايتات المحتوى التي تم قراءتها. #### مقطع (isChunked) +
+ ``` عرف مقطع: صحيح؛ ``` -
+
``` -def isChunked: int +def isChunked: int; ``` -
- هل تم تقطيع النقل، يأخذ القيم التالية: * `0`: في حال لم يكن النقل مقطع. @@ -1006,257 +1000,256 @@ def isChunked: int #### باقي_التقطيع (chunkRemainder) +
+ ``` عرف باقي_التقطيع: كلمة[64]؛ ``` -
+
``` -def chunkRemainder: word[64] +def chunkRemainder: word[64]; ``` -
- البيانات التي لم يتم قراءتها بعد من آخر مقطع. #### صوان (buf) +
+ ``` -عرف صوان: مؤشر[محرف]؛ +عرف صوان: مـؤشر_محارف؛ ``` -
+
``` -def buf: CharsPtr +def buf: CharsPtr; ``` -
- صوان يستعمل من أجل البيانات التي يتم تلقيها. #### معلومات_المسار (pathInfo) +
+ ``` -عرف معلومات_المسار: مؤشر[محرف]؛ +عرف معلومات_المسار: مـؤشر_محارف؛ ``` -
+
``` -def pathInfo: CharsPtr +def pathInfo: CharsPtr; ``` -
- المعلومات الخاصة بالمسار ضمن الرابط. #### يجب_الاغلاق (mustClose) +
+ ``` عرف يجب_الاغلاق: صحيح؛ ``` -
+
``` -def mustClose: int +def mustClose: int; ``` -
- هل يجب إغلاق الاتصال. #### معالج_الاخطاء (inErrorHandler) +
+ ``` عرف معالج_الاخطاء: صحيح؛ ``` -
+
``` -def inErrorHandler: int +def inErrorHandler: int; ``` -
- هل تتم معالجة الأخطاء؟ #### خطأ_داخلي (internalError) +
+ ``` عرف خطأ_داخلي: صحيح؛ ``` -
+
``` -def internalError: int +def internalError: int; ``` -
- هل حدث خطأ أثناء معالجة الطلب؟ #### حجم_الصوان (bufSize) +
+ ``` عرف حجم_الصوان: صحيح؛ ``` -
+
``` -def bufSize: int +def bufSize: int; ``` -
- حجم الصوان. #### حجم_الطلب (requestLen) +
+ ``` عرف حجم_الطلب: صحيح؛ ``` -
+
``` -def requestLen: int +def requestLen: int; ``` -
- الحجم الكلي بالبايتات للطلب بالإضافة للترويسات ضمن الصوان. #### حجم_البيانات (dataLen) +
+ ``` عرف حجم_البيانات: صحيح؛ ``` -
+
``` -def dataLen: int +def dataLen: int; ``` -
- الحجم الكلي بالبايتات للبيانات ضمن الصوان. #### رمز_الحالة (statusCode) +
+ ``` عرف رمز_الحالة: صحيح؛ ``` -
+
``` -def statusCode: int +def statusCode: int; ``` -
- رمز الحالة للرد ضمن بروتوكول ب.ن.ن.ف. #### خنق (throttle) +
+ ``` عرف خنق: صحيح؛ ``` -
+
``` -def throttle: int +def throttle: int; ``` -
- قيمة الخنق. #### آخر_وقت_خنق (lastThrottleTime) +
+ ``` عرف آخر_وقت_خنق: صحيح؛ ``` -
+
``` -def lastThrottleTime: int +def lastThrottleTime: int; ``` -
- آخر وقت تم إرسال فيه بيانات مخنوقة. #### آخر_بايتات_خنق (lastThrottleBytes) +
+ ``` عرف آخر_بايتات_خنق: صحيح[64]؛ ``` -
+
``` -def lastThrottleBytes: int[64] +def lastThrottleBytes: int[64]; ``` -
- البايتات التي تم إرسالها في هذه الثانية. #### قفل_المزامنة (mutex) +
+ ``` عرف قفل_المزامنة: صحيح[64]؛ ``` -
+
``` -def mutex: int[64] +def mutex: int[64]; ``` -
- يمكن استعمالها لقفل الاتصال من أجل الوصول المتزامن الآمن. - ### شغل_الخادم (startServer) +
+ ``` @تصدير[mg_start] دالة شغل_الخادم(مناديات: مؤشر[مـناديات]، بيانات_المستخدم: مؤشر، خيارات: مؤشر[مـؤشر_محارف]): مؤشر[سـياق]؛ -دالة شغل_الخادم(منادي: مـنادى_الطلب، بيانات_المستخدم: مؤشر، خيارات: سند[مـتم.مـصفوفة[مؤشر[مـحرف]]]): مؤشر[سـياق]؛ -دالة شغل_الخادم(منادي: مـنادى_الطلب، خيارات: سند[مـتم.مـصفوفة[مؤشر[مـحرف]]]): مؤشر[سـياق]؛ -دالة شغل_الخادم(منادي: مـنادى_الطلب، بيانات_المستخدم: مؤشر، عدد_الخيارات: صـحيح، خيارات: ...مؤشر[محرف]): مؤشر[سـياق]؛ -دالة شغل_الخادم(منادي: مـنادى_الطلب، عدد_الخيارات: صـحيح، خيارات: ...مؤشر[محرف]): مؤشر[سـياق]؛ -دالة شغل_الخادم(منادي: مـنادى_الطلب، بيانات_المستخدم: مؤشر، منفذ: مؤشر[محرف]): مؤشر[سـياق]؛ -دالة شغل_الخادم(منادي: مـنادى_الطلب، منفذ: مؤشر[محرف]): مؤشر[سـياق]؛ +دالة شغل_الخادم(منادي: مـنادى_الطلب، بيانات_المستخدم: مؤشر، خيارات: سند[مـتم.مـصفوفة[مـؤشر_محارف]]): مؤشر[سـياق]؛ +دالة شغل_الخادم(منادي: مـنادى_الطلب، خيارات: سند[مـتم.مـصفوفة[مـؤشر_محارف]]): مؤشر[سـياق]؛ +دالة شغل_الخادم(منادي: مـنادى_الطلب، بيانات_المستخدم: مؤشر، عدد_الخيارات: صـحيح، خيارات: ...مـؤشر_محارف): مؤشر[سـياق]؛ +دالة شغل_الخادم(منادي: مـنادى_الطلب، عدد_الخيارات: صـحيح، خيارات: ...مـؤشر_محارف): مؤشر[سـياق]؛ +دالة شغل_الخادم(منادي: مـنادى_الطلب، بيانات_المستخدم: مؤشر، منفذ: مـؤشر_محارف): مؤشر[سـياق]؛ +دالة شغل_الخادم(منادي: مـنادى_الطلب، منفذ: مـؤشر_محارف): مؤشر[سـياق]؛ ``` -
+
``` @expname[mg_start] -func startServer(callbacks: ptr[Callbacks], userData: ptr, options: ptr[CharsPtr]): ptr[Context] -func startServer(callback: RequestCallback, userData: ptr, options: ref[Srl.Array[CharsPtr]]): ptr[Context] -func startServer(callback: RequestCallback, options: ref[Srl.Array[CharsPtr]]): ptr[Context] -func startServer(callback: RequestCallback, userData: ptr, optsCount: Int, opts: ...CharsPtr): ptr[Context] -func startServer(callback: RequestCallback, optsCount: Int, opts: ...CharsPtr): ptr[Context] -func startServer(callback: RequestCallback, userData: ptr, port: CharsPtr): ptr[Context] -func startServer(callback: RequestCallback, port: CharsPtr): ptr[Context] +func startServer(callbacks: ptr[Callbacks], userData: ptr, options: ptr[CharsPtr]): ptr[Context]; +func startServer(callback: RequestCallback, userData: ptr, options: ref[Srl.Array[CharsPtr]]): ptr[Context]; +func startServer(callback: RequestCallback, options: ref[Srl.Array[CharsPtr]]): ptr[Context]; +func startServer(callback: RequestCallback, userData: ptr, optsCount: Int, opts: ...CharsPtr): ptr[Context]; +func startServer(callback: RequestCallback, optsCount: Int, opts: ...CharsPtr): ptr[Context]; +func startServer(callback: RequestCallback, userData: ptr, port: CharsPtr): ptr[Context]; +func startServer(callback: RequestCallback, port: CharsPtr): ptr[Context]; ``` -
- تستخدم هذه الدالة لتهيئة الخادم و تشغيله. تُرجع مؤشراً إلى سياق الخادم، أو مؤشراً إلى لاشيء في حال فشل الإنشاء. في حال كان أحد المناديات غير موجود فيتم استبداله بمنادي افتراضي من قبل الخادم. @@ -1270,19 +1263,20 @@ func startServer(callback: RequestCallback, port: CharsPtr): ptr[Context] ### أوقف_الخادم (stopServer) +
+ ``` -دالة أوقف_الخادم(سياق: مؤشر[سـياق])؛ +@تصدير[mg_stop]; +دالة أوقف_الخادم(سياق: مؤشر[سـياق]): فـراغ؛ ``` -
+
``` -@expname[mg_stop] -func stopServer(context: ptr[Context]): Void +@expname[mg_stop]; +func stopServer(context: ptr[Context]): Void; ``` -
- تستعمل هذه الدالة لإيقاف الخادم وتحرير أي موارد كان يستعملها، تنتظر هذه الدالة حتى يتم إنهاء كل المسالك التي يتم تنفيذها و بعدها يقوم بتحرير الموارد و إغلاق الخادم. @@ -1290,19 +1284,20 @@ func stopServer(context: ptr[Context]): Void ### اقرأ (read) +
+ ``` +@تصدير[mg_read]؛ دالة اقرأ(اتصال: مؤشر[اتـصال]، صوان: مؤشر، حجم_صوان: صحيح): صحيح؛ ``` -
+
``` -@expname[mg_read] -func read(connection: ptr[Connection], buffer: ptr, bufferSize: Int): Int +@expname[mg_read]; +func read(connection: ptr[Connection], buffer: ptr, bufferSize: Int): Int; ``` -
- تقوم هذه الدالة بقراءة البيانات من الاتصال المشار إليه عن طريق `اتصال`. يتم التعامل مع البيانات على أنها بيانات ثنائية و يتم تخزينها في الصوان المشار إليه من قبل `صوان`. تُرجع عدد البايتات المقروءة عند النجاح، `0` عند إغلاق الاتصال من قبل الطرف الآخر، أو قيمة سالبة عند عدم وجود بيانات. @@ -1313,19 +1308,20 @@ func read(connection: ptr[Connection], buffer: ptr, bufferSize: Int): Int ### اكتب (write) +
+ ``` -دالة اكتب(اتصال: مؤشر[اتـصال]، صوان: مؤشر[مـحرف]، حجم_صوان: صـحيح): صـحيح؛ +@تصدير[mg_write]؛ +دالة اكتب(اتصال: مؤشر[اتـصال]، صوان: مـؤشر_محارف، حجم_صوان: صـحيح): صـحيح؛ ``` -
+
``` @expname[mg_write] func write(connection: ptr[Connection], buffer: CharsPtr, bufferSize: Int): Int ``` -
- تستعمل هذه الدالة لإرسال البيانات عبر اتصال ما. تُرجع عدد البايتات المرسلة عند النجاح، أو `-1` عند الفشل. @@ -1335,19 +1331,20 @@ func write(connection: ptr[Connection], buffer: CharsPtr, bufferSize: Int): Int ### اطبع (print) +
+ ``` -دالة اطبع(اتصال: مؤشر[اتـصال]، تنسيق: مؤشر[مـحرف]، أي_معطيات_أخرى...): صـحيح؛ +@تصدير[mg_printf]؛ +دالة اطبع(اتصال: مؤشر[اتـصال]، تنسيق: مـؤشر_محارف، أي_معطيات_أخرى...): صـحيح؛ ``` -
+
``` -@expname[mg_printf] -func print(connection: ptr[Connection], format: CharsPtr, ...any): Int +@expname[mg_printf]; +func print(connection: ptr[Connection], format: CharsPtr, ...any): Int; ``` -
- تستعمل هذه الدالة لإرسال رسائل منسقة عبر اتصال ما. تُرجع عدد البايتات المرسلة عند النجاح، `0` عند إغلاق الاتصال، أو `-1` عند حدوث خطأ. @@ -1357,19 +1354,20 @@ func print(connection: ptr[Connection], format: CharsPtr, ...any): Int ### أرسل_ملف (sendFile) +
+ ``` -دالة أرسل_ملف(اتصال: مؤشر[اتـصال]، اسم_الملف: مؤشر[مـحرف]): فـارغ؛ +@تصدير[mg_send_file]؛ +دالة أرسل_ملف(اتصال: مؤشر[اتـصال]، اسم_الملف: مـؤشر_محارف): فـراغ؛ ``` -
+
``` -@expname[mg_send_file] -func sendFile(connection: ptr[Connection], fileName: CharsPtr): Void +@expname[mg_send_file]; +func sendFile(connection: ptr[Connection], fileName: CharsPtr): Void; ``` -
- تستعمل هذه الدالة لإرسال ملف عبر اتصال ما. تقوم هذه الدالة تلقائياً بإضافة الترويسات اللازمة. @@ -1378,21 +1376,22 @@ func sendFile(connection: ptr[Connection], fileName: CharsPtr): Void ### هات_الارتباط (getCookie) +
+ ``` +@تصدير[mg_get_cookie]؛ دالة هات_الارتباط( - نص_الكعكات: مؤشر[مـحرف]، اسم_الكعكة: مؤشر[مـحرف]، محتوى_الكعكة: مؤشر[مـحرف]، حجم_الكعكة: كـلمة[64] -): كـلمة[64]؛ + نص_الكعكات: مـؤشر_محارف، اسم_الكعكة: مـؤشر_محارف، محتوى_الكعكة: مـؤشر_محارف، حجم_الكعكة: كـلمة[64] +): صحيح؛ ``` -
+
``` -@expname[mg_get_cookie] -func getCookie(cookiesString: CharsPtr, cookieName: CharsPtr, outCookieContent: CharsPtr, outCookieSize: Word[64]): Int +@expname[mg_get_cookie]; +func getCookie(cookiesString: CharsPtr, cookieName: CharsPtr, outCookieContent: CharsPtr, outCookieSize: Word[64]): Int; ``` -
- تستعمل هذه الدالة لجلب قيمة متغير معين ضمن كعكة ما. تُرجع حجم الكعكة بالبايت عند النجاح، `-1` عند عدم إيجاد الكعكة، أو `-2` عند فشل التخزين في الصوان. @@ -1403,19 +1402,20 @@ func getCookie(cookiesString: CharsPtr, cookieName: CharsPtr, outCookieContent: ### هات_الترويسة (getHeader) +
+ ``` -دالة هات_الترويسة(اتصال: مؤشر[اتـصال]، اسم_الترويسة: مؤشر[مـحرف]): مؤشر[مـحرف]؛ +@تصدير[mg_get_header]؛ +دالة هات_الترويسة(اتصال: مؤشر[اتـصال]، اسم_الترويسة: مـؤشر_محارف): مـؤشر_محارف؛ ``` -
+
``` -@expname[mg_get_header] -func getHeader(connection: ptr[Connection], headerName: CharsPtr): CharsPtr +@expname[mg_get_header]; +func getHeader(connection: ptr[Connection], headerName: CharsPtr): CharsPtr; ``` -
- تستعمل هذه الدالة لجلب الترويسة عبر اتصال ما. تُرجع مؤشراً إلى قيمة الترويسة أو مؤشراً إلى لا شيء عند الفشل. @@ -1424,19 +1424,20 @@ func getHeader(connection: ptr[Connection], headerName: CharsPtr): CharsPtr ### هات_معلومات_الطلب (getRequestInfo) +
+ ``` +@تصدير[mg_get_request_info]؛ دالة هات_معلومات_الطلب(اتصال: مؤشر[اتـصال]): مؤشر[اتـصال]؛ ``` -
+
``` -@expname[mg_get_request_info] -func getRequestInfo(connection: ptr[Connection]): ptr[RequestInfo] +@expname[mg_get_request_info]; +func getRequestInfo(connection: ptr[Connection]): ptr[RequestInfo]; ``` -
- تستعمل هذه الدالة لجلب معلومات الطلب عبر اتصال ما. تُرجع مؤشراً إلى معلومات الطلب. @@ -1444,21 +1445,22 @@ func getRequestInfo(connection: ptr[Connection]): ptr[RequestInfo] ### هات_متغير (getVariable) +
+ ``` +@تصدير[mg_get_var]؛ دالة هات_متغير( - بيانات: مؤشر[مـحرف]، حجم_البيانات: صـحيح، اسم_المتغير: مؤشر[مـحرف]، متغير_الخرج: مؤشر[مـحرف]، حجم_متغير_الخرج: صـحيح + بيانات: مـؤشر_محارف، حجم_البيانات: صـحيح، اسم_المتغير: مـؤشر_محارف، متغير_الخرج: مـؤشر_محارف، حجم_متغير_الخرج: صـحيح ): صـحيح؛ ``` -
+
``` @expname[mg_get_var] func getVariable(data: CharsPtr, dataSize: Int, variableName: CharsPtr, outVariable: CharsPtr, outVariableSize: Int): Int ``` -
- تستعمل هذه الدالة لجلب قيمة متغير ما من الخادم. هذا المتغير تم تمريره إلى الخادم إما عن طريق طلب POST أي ضمن الجسم الخاص بالطلب، أو عن طريق طلب GET ضمن الرابط الخاص بالطلب. @@ -1478,4 +1480,3 @@ func getVariable(data: CharsPtr, dataSize: Int, variableName: CharsPtr, outVaria هذا المشروع مرخص بموجب رخصة غنو العمومية الصغرى الإصدار 3.0 (LGPL-3.0). راجع ملفات `COPYING` و `COPYING.LESSER` للحصول على التفاصيل. -