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 ਨਤੀਜੇ ਉੱਤੇ ਮਾਲਕੀ ਨਹੀਂ ਦਿੰਦੀ।

ਸੰਬੰਧਿਤ ਲੇਖ