CFNetwork sitt proxyoppslag er en C-API som kan brukes direkte fra C++; å konvertere alt til Objective-C-objekter er valgfritt. Kall CFNetworkCopyProxiesForURL med mål-CFURL-en og innstillinger fra CFNetworkCopySystemProxySettings for å få ordnede proxyordbøker.

VerdiEierskap
Objekter som opprettes eller returneres av Copy, inkludert ruter og innstillingerEid av kalleren; frigjør hvert eid objekt som ikke er null
Ordbok fra matrisen eller vertsnavn fra ordboken via GetLånt; ikke frigjør uten å ha beholdt det

For gyldige routes og en indeks innenfor området kan uttrekket være:

CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
    CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
    CFDictionaryGetValue(proxy, kCFProxyHostNameKey));

Les kCFProxyTypeKey før du behandler oppføringen som et endepunkt. Direkte og automatisk konfigurerte kandidater krever ulik behandling.

Konverter en konkret oppførings CFString-vertsnavn og CFNumber-port mens eieren er i live. Uttrukne C++-verdier kan deretter gå inn i transportens konfigurasjon. For å beholde selve CFString utover resultatet, behold det først og balanser det senere med CFRelease; ellers avslutt før du frigjør eieren som inneholder det.

Frigjør den opprettede/kopierte mål-URL-en, innstillingordboken og resultatmatrisen ved opprydding, og bruk en scope guard hvis det passer. En variabels CFStringRef-type alene gir ikke eierskap over et Get-resultat.

Relaterte artikler