أنت تعمل على تطبيق شبكة يستخدم "QNetworkAccessManager" (اسم) لإرسال واستقبال الطلبات عبر الشبكة. أحد متطلبات التطبيق الخاص بك هو تنفيذ التخزين المؤقت لاستجابات الشبكة على القرص، لتحسين الأداء وتقليل الحاجة إلى طلبات الشبكة المتكررة.

لديك مقتطف رمز يوضح كيفية تكوين "QNetworkAccessManager" لاستخدام ذاكرة التخزين المؤقت على القرص. هنا مقتطف شفرة:

```CPP
QNetworkDiskCache *diskCache = new QNetworkDiskCache(nam);
QString CacheFolder = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
diskCache->setCacheDirectory(cacheFolder);
diskCache->setMaximumCacheSize(mCacheSize);

nam->setCache(diskCache);
```

في هذا الكود، يتم إنشاء كائن "QNetworkDiskCache" وتعيينه إلى "QNetworkAccessManager". يتم تعيين دليل ذاكرة التخزين المؤقت على القيمة التي يتم إرجاعها بواسطة `QStandardPaths::writableLocation(QStandardPaths::CacheLocation)`، والتي تمثل الموقع القابل للكتابة لبيانات ذاكرة التخزين المؤقت على النظام المحلي. يتم أيضًا تعيين الحد الأقصى لحجم ذاكرة التخزين المؤقت على `mCacheSize`، وهو الحد الأقصى لحجم ذاكرة التخزين المؤقت المسموح به.

مهمتك هي تنفيذ وظيفة تأخذ حجم ذاكرة التخزين المؤقت كمدخل وترجع الحجم الإجمالي لدليل ذاكرة التخزين المؤقت بالبايت (بما في ذلك جميع الملفات والأدلة الفرعية). يجب أن تفترض أن دليل ذاكرة التخزين المؤقت موجود بالفعل ويحتوي على ملفات وأدلة فرعية.

اكتب دالة باسم "getCacheDirectorySize" بالتوقيع التالي:

```CPP
qint64 getCacheDirectorySize(qint64 dumpSize);
```

**مدخل:**

تأخذ الدالة معلمة واحدة `cacheSize` (1 <= حجم ذاكرة التخزين المؤقت <= 10^9)، والتي تمثل الحد الأقصى للحجم المسموح به لدليل ذاكرة التخزين المؤقت بالبايت.

**انتاج:**

يجب أن تقوم الدالة بإرجاع قيمة واحدة، وهي الحجم الإجمالي لدليل ذاكرة التخزين المؤقت بالبايت. يجب أن تكون القيمة التي تم إرجاعها من النوع `qint64`.

**ملحوظة:**

- قد يحتوي دليل ذاكرة التخزين المؤقت على ملفات وأدلة فرعية بأحجام مختلفة.
- يجب أن يأخذ الحل في الاعتبار جميع الملفات والأدلة الفرعية الموجودة في دليل ذاكرة التخزين المؤقت، بما في ذلك تلك الموجودة في الدلائل الفرعية المتداخلة بشكل أعمق من مستوى واحد.
- يجب أن يقوم الحل بحساب الحجم الإجمالي لدليل ذاكرة التخزين المؤقت عن طريق اجتياز جميع الملفات والأدلة الفرعية بشكل متكرر.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}