CFNetwork tarpinio serverio rezultatų skaitymas tiesiogiai C++
Naudokite Apple C tarpinio serverio paieškos API iš C++ ir palaikykite pasiskolintas žodyno reikšmes gyvas, neatlaisvindami jų kaip nuosavų objektų.
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 nustatymus | Priklauso kviečiančiajam; atlaisvinkite kiekvieną nuosavą objektą, kuris nėra null |
| Žodynas iš masyvo arba pagrindinio kompiuterio vardas iš žodyno per Get | Pasiskolinta; 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.