C++లో CFNetwork ప్రాక్సీ ఫలితాలను నేరుగా చదవండి
C++ నుండి Apple యొక్క C ప్రాక్సీ లుకప్ APIలను ఉపయోగించి, అప్పు తీసుకున్న నిఘంటువు విలువలను స్వామ్య వస్తువులుగా విడుదల చేయకుండా సజీవంగా ఉంచండి.
CFNetwork ప్రాక్సీ లుకప్ అనేది C++ నుండి నేరుగా ఉపయోగించగల C API; ప్రతిదీ 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 ఫలితంపై స్వామ్యాన్ని ఇవ్వదు.