C++ માં CFNetwork પ્રોક્સી પરિણામો સીધા વાંચો
C++ થી Apple ના C પ્રોક્સી લુકઅપ API વાપરો અને ઉધાર લીધેલા ડિક્શનરી મૂલ્યોને માલિકીના ઑબ્જેક્ટ તરીકે મુક્ત કર્યા વિના જીવંત રાખો.
CFNetwork ની પ્રોક્સી લુકઅપ એ C API છે જે C++ થી સીધી વાપરી શકાય છે; બધું Objective-C ઑબ્જેક્ટમાં ફેરવવું વૈકલ્પિક છે. ક્રમાંકિત પ્રોક્સી ડિક્શનરી મેળવવા માટે CFNetworkCopyProxiesForURL ને લક્ષ્ય CFURL અને CFNetworkCopySystemProxySettings ના સેટિંગ્સ સાથે બોલાવો.
| મૂલ્ય | માલિકી |
|---|---|
| Copy દ્વારા બનાવેલા કે પરત કરેલા ઑબ્જેક્ટ, જેમાં રૂટ અને સેટિંગ્સનો સમાવેશ થાય છે | કૉલરની માલિકી; દરેક નોન-નલ માલિકીના ઑબ્જેક્ટને મુક્ત કરો |
| એરેમાંથી ડિક્શનરી અથવા 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 પરિણામ પર માલિકી આપતો નથી.