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 ଫଳାଫଳ ଉପରେ ମାଲିକାନା ଦିଏ ନାହିଁ।