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 પરિણામ પર માલિકી આપતો નથી.

સંબંધિત લેખો