ອ່ານຜົນລັບຂອງ CFNetwork ໂດຍກົງໃນ C++
ໃຊ້ API ຄົ້ນຫາພຣັອກຊີ C ຂອງ Apple ຈາກ C++ ແລະ ຮັກສາຄ່າຂອງດິກຊັນນາຣີທີ່ຍືມມາໃຫ້ມີຊີວິດ ໂດຍບໍ່ປ່ອຍພວກມັນເປັນວັດຖຸທີ່ເປັນເຈົ້າຂອງ.
ການຄົ້ນຫາພຣັອກຊີຂອງ CFNetwork ແມ່ນ C API ທີ່ໃຊ້ໄດ້ໂດຍກົງຈາກ C++; ການປ່ຽນທຸກຢ່າງເປັນວັດຖຸ 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.