Кіріспе

Mac OS X жүйесіндегі C қолданбалы бағдарламалау интерфейсі (әрі CF деп те аталады) – Apple Inc. компаниясы өз операциялық жүйелері үшін жазған C қолданбалы бағдарламалау интерфейсі (API), және төменгі деңгейдегі процедуралар мен орауыш функциялардың жиынтығы. Core Foundation процедураларының көпшілігі белгілі бір атау конвенциясын сақтайды, олар түсініксіз объектілермен жұмыс істейді, мысалы, CFDictionaryRef функциялары CFDictionary сөзімен басталады, ал бұл объектілер көбінесе CFRetain және CFRelease арқылы (қолмен) саналып есептеледі. Ішкі тұрғысынан Core Foundation, Objective C стандартты кітапханасы мен Carbon API-дегі типтердің негізін құрайды. Core Foundation-ның ең көп қолданылатын саласы – деректердің өзіндік типтерін беру, оның ішінде шикі байттар, Unicode жолдар, сандар, күнтізбе күндері және UUID-тер, сондай-ақ массивтер, жиынтықтар және сөздіктер сияқты жинақтарды көптеген macOS C процедураларына, негізінен GUI-ға қатысты мәселелерде пайдалану. Операциялық жүйе деңгейінде Core Foundation сонымен қатар CFPropertyList арқылы стандартталған қолданба параметрлерін басқаруды, бумаларды басқаруды, орындалу циклдарын, CFMachPort және CFNotificationCenter арқылы процестер аралық байланысты, ал CFUserNotification арқылы қарапайым графикалық пайдаланушы интерфейсі хабарлама диалогын қамтамасыз етеді. API-дің басқа бөліктеріне пайдалануды жеңілдету үшін қолданыстағы API-лерге арналған қосымша процедуралар мен орауыштар кіреді. Қосымша процедуралар CFReadStream, CFWriteStream және CFURL арқылы файлдық жүйе мен желілік I/O сияқты операцияларды, сондай-ақ ендіандылық аудармасын (байт реті бойынша қосымша құралдар) жүзеге асырады. Орауыш процедураларының мысалдарына Unix сокеттері үшін Core Foundation орауыш процедуралары, CFSocket API жатады. Core Foundation-дағы кейбір типтер "бірден-бірге алмастырылатын" болып табылады, яғни оларды қарапайым түрлендіру арқылы Foundation Kit әріптестерімен алмастыруға болады. Мысалы, CFDictionaryRef Core Foundation типін жасап, кейін оны NSDictionary * Objective C типіне стандартты C түрлендіруін қолданып түрлендіріп, содан кейін сол объектіде қалыпты жағдайда қалаған Objective C әдістерін қолдануға болады. Core Foundation Microsoft Component Object Model негізіндегі плагин моделін қолдайды.

Ашық бастапқы кодтың қол жетімділігі

Apple бұрын CF-тің көп бөлігін macOS, Linux және Windows үшін кросс-платформалық қолданбалар жазуға арналған CFLite деп аталатын ашық кодты жоба ретінде шығарды. OpenCFLite деп аталатын үшінші тараптың ашық кодты жүзеге асыруы, Apple CFLite-ті 32 биттік Windows және Linux орталарында құру үшін кеңейтеді. Оны WebKit әзірлеушілерінің бірі күтіп бақты, бірақ 2015 жылы даму тоқтап қалды. KJams караоке платформасы 2017 жылдан бері оның бұтағын (fork) қолдап келеді. Бұл нұсқа, оның бағдарламашысы Дэвид М. Коттер, 64 биттік жүйелерді қолдайды және LibreSSL негізіндегі TLS-пен CFNetwork-ті іске асырады. 2021 жылы Грант Эриксон (Брент Фулгаммен бірге SourceForge нұсқасын жасаған бастапқы серіктес) OpenCFLite-тің бұтағын жасады, сонымен қатар CFNetwork-тің CFHost бөлігінің OpenCFNetwork ретіндегі үйлесімді портын жасады. Swift Corelib Foundation, Apple емес платформалар үшін Swift бағдарламалау тілі үшін Foundation Kit-тің қосалқы нұсқасы, Apache License 2.0 лицензиясымен шығарылған Core Foundation-ның дерлік толық нұсқасын қамтиды. GNUstep "libs corebase" деп аталатын Core Foundation нұсқасын қамтиды.