Пошук проксі ў CFNetwork — гэта C-API, якое можна выкарыстоўваць непасрэдна з C++; пераўтварэнне ўсяго ў аб'екты Objective-C неабавязковае. Выклічце CFNetworkCopyProxiesForURL з мэтавым CFURL і наладамі з CFNetworkCopySystemProxySettings, каб атрымаць упарадкаваныя слоўнікі проксі.

ЗначэннеУласнасць
Аб'екты, створаныя або вернутыя Copy, уключаючы маршруты і наладыНалежыць выклікаючаму; вызваляйце кожны ўласны аб'ект, які не роўны NULL
Слоўнік з масіва або імя хоста са слоўніка праз 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.

Падобныя артыкулы