Čitanje CFNetwork proxy rezultata izravno u C++
Koristite Appleove C API-je za pretraživanje proxyja iz C++ i držite posuđene vrijednosti rječnika živima bez oslobađanja kao posjedovanih objekata.
CFNetwork pretraživanje proxyja je C API koji se može koristiti izravno iz C++; pretvaranje svega u Objective-C objekte nije obavezno. Pozovite CFNetworkCopyProxiesForURL s ciljnim CFURL-om i postavkama iz CFNetworkCopySystemProxySettings da biste dobili uređene rječnike proxyja.
| Vrijednost | Vlasništvo |
|---|---|
| Objekti koje Copy stvara ili vraća, uključujući rute i postavke | Vlasništvo pozivatelja; oslobodite svaki posjedovani objekt koji nije null |
| Rječnik iz polja ili ime hosta iz rječnika preko Get | Posuđeno; ne oslobađajte bez prethodnog zadržavanja |
Za valjane routes i indeks unutar raspona, izdvajanje može biti:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
Pročitajte kCFProxyTypeKey prije nego unos tretirate kao krajnju točku. Izravni kandidati i kandidati automatske konfiguracije zahtijevaju različito rukovanje.
Pretvorite CFString ime hosta i CFNumber port konkretnog unosa dok je vlasnik živ. Izdvojene C++ vrijednosti tada mogu ući u konfiguraciju prijenosa. Da biste zadržali sam CFString nakon rezultata, prvo ga zadržite i kasnije to uravnotežite s CFRelease; inače završite prije oslobađanja vlasnika koji ga sadrži.
Pri čišćenju oslobodite stvoreni/kopirani ciljni URL, rječnik postavki i polje rezultata, uz čuvar opsega ako je prikladno. Sam tip CFStringRef varijable ne daje vlasništvo nad Get rezultatom.