Читање на CFNetwork прокси резултати директно во C++
Користете ги C API-јата на Apple за пребарување прокси од C++ и држете ги позајмените вредности на речникот живи без да ги ослободувате како сопствени објекти.
Пребарувањето прокси на 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.