Aqra r-riżultati tal-proxy ta' CFNetwork direttament f'C++
Uża l-API tal-C tal-Apple għat-tfittxija tal-proxy minn C++ u żomm il-valuri tad-dizzjunarju mislufa ħajjin mingħajr ma teħlishom bħala oġġetti proprji.
It-tfittxija tal-proxy ta' CFNetwork hija API tas-C li tista' tintuża direttament minn C++; il-konverżjoni ta' kollox f'oġġetti Objective-C hija fakultattiva. Sejjaħ CFNetworkCopyProxiesForURL bl-CFURL fil-mira u s-settings minn CFNetworkCopySystemProxySettings biex tikseb dizzjunarji tal-proxy ordnati.
| Valur | Proprjetà |
|---|---|
| Oġġetti maħluqa jew ritornati minn Copy, inklużi rotot u settings | Proprjetà tas-sejjieħ; ħels kull oġġett proprjetà li mhuwiex null |
| Dizzjunarju mill-array jew isem tal-host mid-dizzjunarju permezz ta' Get | Misluf; teħlshx mingħajr ma tkun żammejtu |
Għal routes validi u indiċi fil-medda, l-estrazzjoni tista' tkun:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
Aqra kCFProxyTypeKey qabel ma tittratta d-dħul bħala punt tat-tmiem. Il-kandidati diretti u dawk tal-konfigurazzjoni awtomatika jeħtieġu trattament differenti.
Ikkonverti l-isem tal-host CFString u l-port CFNumber ta' dħul konkret sakemm il-proprjetarju jibqa' ħaj. Il-valuri C++ estratti jistgħu mbagħad jidħlu fil-konfigurazzjoni tat-trasport. Biex iżżomm il-CFString innifsu wara r-riżultat, żommu l-ewwel u mbagħad ibbilanċja dan b'CFRelease; inkella temm qabel ma teħles il-proprjetarju li jkun fih.
Waqt it-tindif ħels l-URL fil-mira maħluqa/kopjata, id-dizzjunarju tas-settings u l-array tar-riżultati, u uża gwardjan tal-ambitu fejn xieraq. It-tip CFStringRef ta' varjabbli waħdu ma jagħtix proprjetà fuq riżultat ta' Get.