CFNetwork پروکسی نتائج کو C++ میں براہِ راست پڑھیں
Apple کے C پروکسی تلاش API کو C++ سے استعمال کریں اور مستعار لغت کی قدروں کو ملکیتی اشیاء کے طور پر چھوڑے بغیر زندہ رکھیں۔
CFNetwork کی پروکسی تلاش ایک C API ہے جو C++ سے براہِ راست استعمال کی جا سکتی ہے؛ ہر چیز کو Objective-C اشیاء میں بدلنا اختیاری ہے۔ ترتیب شدہ پروکسی لغات حاصل کرنے کے لیے CFNetworkCopyProxiesForURL کو ہدف CFURL اور CFNetworkCopySystemProxySettings کی ترتیبات کے ساتھ کال کریں۔
| قدر | ملکیت |
|---|---|
| Copy کی بنائی یا واپس کی گئی اشیاء، بشمول راستے اور ترتیبات | کال کرنے والے کی ملکیت؛ ہر غیر null ملکیتی شے کو آزاد کریں |
| Array سے لغت یا Get کے ذریعے لغت سے میزبان نام | مستعار؛ رکھے بغیر آزاد نہ کریں |
درست routes اور حد کے اندر انڈیکس کے لیے، نکالنا یوں ہو سکتا ہے:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
اندراج کو اینڈ پوائنٹ سمجھنے سے پہلے kCFProxyTypeKey پڑھیں۔ براہِ راست اور خودکار ترتیب والے امیدواروں کو مختلف طریقے سے نمٹانا ضروری ہے.
مالک کے زندہ رہنے کے دوران کسی مخصوص اندراج کا CFString میزبان نام اور CFNumber پورٹ تبدیل کریں۔ نکالی گئی C++ قدریں پھر ٹرانسپورٹ کی ترتیب میں جا سکتی ہیں۔ CFString کو خود نتیجے کے بعد بھی رکھنے کے لیے پہلے اسے رکھیں اور بعد میں CFRelease سے توازن کریں؛ ورنہ اسے رکھنے والے مالک کو آزاد کرنے سے پہلے کام ختم کریں۔
صفائی کے وقت بنایا/نقل کیا گیا ہدف URL، ترتیبات کی لغت اور نتائج کا array آزاد کریں، مناسب ہو تو اسکوپ گارڈ استعمال کریں۔ کسی متغیر کی محض CFStringRef قسم Get کے نتیجے پر ملکیت نہیں دیتی۔