C++-এ সরাসরি CFNetwork প্রক্সি ফলাফল পড়ুন
C++ থেকে Apple-এর C প্রক্সি লুকআপ API ব্যবহার করুন এবং ধার করা অভিধানের মানগুলি মালিকানাধীন বস্তু হিসেবে ছেড়ে না দিয়ে জীবিত রাখুন।
CFNetwork-এর প্রক্সি লুকআপ একটি C API যা C++ থেকে সরাসরি ব্যবহার করা যায়; সবকিছু Objective-C বস্তুতে রূপান্তর করা ঐচ্ছিক। ক্রমবদ্ধ প্রক্সি অভিধান পেতে CFNetworkCopyProxiesForURL ডাকুন লক্ষ্য CFURL এবং CFNetworkCopySystemProxySettings-এর সেটিংস নিয়ে।
| মান | মালিকানা |
|---|---|
| Copy দ্বারা তৈরি বা ফেরত দেওয়া বস্তু, রুট ও সেটিংস সহ | কলারের মালিকানা; প্রতিটি অ-শূন্য মালিকানাধীন বস্তু ছেড়ে দিন |
| অ্যারে থেকে পাওয়া অভিধান বা 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, সেটিংস অভিধান ও ফলাফল অ্যারে ছেড়ে দিন, প্রয়োজনে স্কোপ গার্ড ব্যবহার করুন। কোনো ভেরিয়েবলের কেবল CFStringRef টাইপ Get ফলাফলের উপর মালিকানা দেয় না।