CFNetwork tarpinio serverio paieška yra C API, kurią galima naudoti tiesiogiai iš C++; visko konvertavimas į Objective-C objektus yra neprivalomas. Iškvieskite CFNetworkCopyProxiesForURL su tiksline CFURL ir CFNetworkCopySystemProxySettings nustatymais, kad gautumėte surikiuotus tarpinio serverio žodynus.

ReikšmėNuosavybė
Objektai, kuriuos sukuria arba grąžina Copy, įskaitant maršrutus ir nustatymusPriklauso kviečiančiajam; atlaisvinkite kiekvieną nuosavą objektą, kuris nėra null
Žodynas iš masyvo arba pagrindinio kompiuterio vardas iš žodyno per GetPasiskolinta; neatlaisvinkite jo prieš tai jo nepasilikę

Kai routes galioja ir indeksas yra diapazone, išgavimas gali būti:

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

Perskaitykite kCFProxyTypeKey prieš traktuodami įrašą kaip galinį tašką. Tiesioginiai ir automatinės konfigūracijos kandidatai reikalauja skirtingo apdorojimo.

Konvertuokite konkretaus įrašo CFString pagrindinio kompiuterio vardą ir CFNumber prievadą, kol savininkas gyvas. Išgautos C++ reikšmės tada gali patekti į transporto konfigūraciją. Norėdami išsaugoti patį CFString po rezultato, pirmiausia jį pasilaikykite ir vėliau tai subalansuokite su CFRelease; kitaip baikite prieš atlaisvindami jį turintį savininką.

Valydami atlaisvinkite sukurtą/nukopijuotą tikslinę URL, nustatymų žodyną ir rezultatų masyvą, jei tinka, naudokite apimties sargą. Vien kintamojo CFStringRef tipas nesuteikia nuosavybės Get rezultatui.

Susiję straipsniai