C++-ൽ CFNetwork പ്രോക്സി ഫലങ്ങൾ നേരിട്ട് വായിക്കുക
C++-ൽ നിന്ന് Apple-ന്റെ C പ്രോക്സി ലുക്കപ്പ് API-കൾ ഉപയോഗിക്കുക, കടമെടുത്ത ഡിക്ഷണറി മൂല്യങ്ങൾ ഉടമസ്ഥതയുള്ള വസ്തുക്കളായി വിടാതെ ജീവനോടെ നിലനിർത്തുക.
CFNetwork-ന്റെ പ്രോക്സി ലുക്കപ്പ് C++-ൽ നിന്ന് നേരിട്ട് ഉപയോഗിക്കാവുന്ന C API ആണ്; എല്ലാം Objective-C വസ്തുക്കളാക്കി മാറ്റുന്നത് ഐച്ഛികമാണ്. ക്രമീകരിച്ച പ്രോക്സി ഡിക്ഷണറികൾ ലഭിക്കാൻ CFNetworkCopyProxiesForURL വിളിച്ച് ലക്ഷ്യ CFURL-ഉം CFNetworkCopySystemProxySettings-ന്റെ ക്രമീകരണങ്ങളും നൽകുക.
| മൂല്യം | ഉടമസ്ഥത |
|---|---|
| Copy സൃഷ്ടിക്കുന്നതോ തിരികെ നൽകുന്നതോ ആയ വസ്തുക്കൾ, റൂട്ടുകളും ക്രമീകരണങ്ങളും ഉൾപ്പെടെ | വിളിക്കുന്നയാളുടെ ഉടമസ്ഥതയിൽ; null അല്ലാത്ത ഓരോ ഉടമസ്ഥ വസ്തുവും വിട്ടയക്കുക |
| അറേയിൽ നിന്നുള്ള ഡിക്ഷണറി അല്ലെങ്കിൽ Get വഴി ഡിക്ഷണറിയിൽ നിന്നുള്ള ഹോസ്റ്റ്നാമം | കടമെടുത്തത്; സൂക്ഷിച്ചുവെക്കാതെ വിട്ടയക്കരുത് |
സാധുവായ routes-ഉം പരിധിക്കുള്ളിലെ ഇൻഡക്സും ഉണ്ടെങ്കിൽ, എക്സ്ട്രാക്ഷൻ ഇപ്രകാരമാകാം:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
എൻട്രിയെ എൻഡ്പോയിന്റായി കാണുന്നതിന് മുൻപ് kCFProxyTypeKey വായിക്കുക. നേരിട്ടുള്ളതും യാന്ത്രിക-കോൺഫിഗറേഷൻ ഉള്ളതുമായ സ്ഥാനാർഥികൾക്ക് വ്യത്യസ്ത കൈകാര്യം വേണം.
ഉടമ ജീവനോടെയിരിക്കുമ്പോൾ ഒരു നിർദ്ദിഷ്ട എൻട്രിയുടെ CFString ഹോസ്റ്റ്നാമും CFNumber പോർട്ടും പരിവർത്തനം ചെയ്യുക. എക്സ്ട്രാക്റ്റ് ചെയ്ത C++ മൂല്യങ്ങൾക്ക് പിന്നീട് ട്രാൻസ്പോർട്ടിന്റെ കോൺഫിഗറേഷനിലേക്ക് പോകാം. ഫലത്തിനു ശേഷവും CFString തന്നെ നിലനിർത്താൻ ആദ്യം അത് സൂക്ഷിക്കുക, പിന്നീട് CFRelease ഉപയോഗിച്ച് സന്തുലിതമാക്കുക; അല്ലാത്തപക്ഷം അത് ഉൾക്കൊള്ളുന്ന ഉടമയെ വിട്ടയക്കുന്നതിന് മുൻപ് ജോലി തീർക്കുക.
വൃത്തിയാക്കുമ്പോൾ സൃഷ്ടിച്ച/പകർത്തിയ ലക്ഷ്യ URL, ക്രമീകരണ ഡിക്ഷണറി, ഫല അറേ എന്നിവ വിട്ടയക്കുക, ആവശ്യമെങ്കിൽ സ്കോപ്പ് ഗാർഡ് ഉപയോഗിക്കുക. ഒരു വേരിയബിളിന്റെ CFStringRef ടൈപ്പ് മാത്രം Get ഫലത്തിന്മേൽ ഉടമസ്ഥത നൽകുന്നില്ല.