कोर फाउंडेशन
कोर फ़ाउंडेशन (जिसे सीएफ़ भी कहा जाता है) सी (प्रोग्रामिंग लैंग्वेज) एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) है जिसे एप्पल ने अपने ऑपरेटिंग सिस्टम के लिए लिखा है, और यह निम्न-स्तरीय रूटीन और रेपर फंक्शन्स का मिश्रण है। अधिकांश कोर फाउंडेशन रूटीन निश्चित नामकरण परंपरा का पालन करते हैं जो अपारदर्शी वस्तुओं से निपटते हैं, उदाहरण के लिए CFDictionaryRef उन फंक्शन्स के लिए जिनके नाम CFDictionary से प्रारंभ होते हैं, और इन वस्तुओं की अधिकांशतः CFRetain
और CFRelease
के माध्यम से (मैन्युअल रूप से) गणना की जाती है। आंतरिक रूप से, कोर फाउंडेशन ऑब्जेक्टिव सी मानक पुस्तकालय और कार्बन एपीआई में प्रकारों का आधार बनाता है।[1]
कोर फाउंडेशन का सबसे प्रचलित उपयोग रॉ बाइट्स, यूनिकोड स्ट्रिंग (कंप्यूटर विज्ञान) संख्याओं, कैलेंडर तिथियों, और यूयूआईडी, सहित डेटा के लिए अपने स्वयं के प्रिमिटिव प्रकारों को पारित करने के लिए है, साथ ही संग्रह जैसे ऐरे, सेट और डिक्शनरी, कई मैकओएस सी (प्रोग्रामिंग लैंग्वेज) रूटीन के लिए हैं। मुख्य रूप से वे जो ग्राफिकल यूज़र इंटरफ़ेस से संबंधित होते हैं। ऑपरेटिंग सिस्टम स्तर पर कोर फाउंडेशन CFPropertyList
, बंडल (मैकओएस) हैंडलिंग, इवेंट लूप, CFMachPort
और CFNotificationCenter
के माध्यम से इंटरप्रोसेस संचार, और CFUserNotification
के माध्यम से मूल ग्राफिकल यूजर इंटरफेस, संदेश संवाद के माध्यम से मानकीकृत अनुप्रयोग प्रमुखता प्रबंधन भी प्रदान करता है।
एपीआई के अन्य भागों में उपयोग में सरलता के लिए प्रस्तुत एपीआई के निकट उपयोगिता रूटीन और रैपर सम्मिलित हैं। CFReadStream
, CFWriteStream
, और CFURL
, एंडियननेस ट्रांसलेशन (बाइट ऑर्डर यूटिलिटीज) के माध्यम से फाइल सिस्टम और नेटवर्क इनपुट/आउटपुट जैसी क्रियाएँ करते हैं। रैपर रूटीन के कुछ उदाहरणों में यूनिक्स सॉकेट्स के लिए कोर फाउंडेशन के रैपर रूटीन, सीएफसॉकेट एपीआई सम्मिलित हैं।
कोर फाउंडेशन में कुछ प्रकार टोल-फ्री ब्रिज हैं, जो उनके फाउंडेशन किट समकक्षों के साथ साधारण कास्ट विनिमेय हैं। उदाहरण के लिए, कोई CFDictionaryRef
कोर फाउंडेशन प्रकार बना सकता है, जिसके उपरान्त इसे अपने ऑब्जेक्टिव-सी समकक्ष NSDictionary*
में परिवर्तित करने के लिए मानक C कास्ट का उपयोग कर सकता है, और उसके पश्चात उस वस्तु पर वांछित ऑब्जेक्टिव-सी विधियों का उपयोग करता है जैसा कि सामान्य रूप से होता है।
कोर फाउंडेशन का प्लग-इन मॉडल (CFPlugin) है जो माइक्रोसॉफ्ट कॉम्पोनेन्ट ऑब्जेक्ट मॉडल पर आधारित है।[2]
ओपन सोर्स उपलब्धता
एप्पल अधिकांश सीएफ़ को सीएफलाइट नामक ओपन-सोर्स प्रोजेक्ट के रूप में प्रस्तुत करता था। जिसका उपयोग मैकओएस, लिनक्स और माइक्रोसॉफ़्ट विंडोज़ के लिए क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन लिखने के लिए किया जा सकता है।[3]
ओपनसीएफलाइट नामक तृतीय-पक्ष ओपन-सोर्स कार्यान्वयन 32-बिट विंडोज और लिनक्स वातावरणों पर निर्माण के लिए एप्पल सीएफलाइट का विस्तार करता है। यह वेबकिट डेवलपर्स के द्वारा मेन्टेन किया जाता है, किंतु यह 2015 में संवृत हो गया था।[4] कराओके प्लेटफॉर्म केजेम्स 2017 से फोर्क बनाए रखता है। प्रोग्रामर डेविड एम. कॉटर द्वारा यह संस्करण 64-बिट प्रणाली का समर्थन करता है और लिबरएसएसएल-आधारित टीएलएस के साथ सीएफ नेटवर्क कार्यान्वयन है।[5] ओपनसीएफलाइट का फोर्क 2021 में ग्रांट एरिकसन (ब्रेंट फुलघम के साथ मूल सहयोगी) द्वारा बनाया गया था।[6] सीएफनेटवर्क के CFHost
का भाग, ओपनसीएफ नेटवर्क के रूप में है।[7]
स्विफ्ट कोरलिब फाउंडेशन, गैर-एप्पल प्लेटफॉर्म के लिए स्विफ्ट प्रोग्रामिंग भाषा के लिए फाउंडेशन किट का फ़ॉलबैक संस्करण है, जिसमें अपाचे लाइसेंस 2.0 के अंतर्गत निरंतर कोर फाउंडेशन का लगभग पूर्ण संस्करण सम्मिलित है।[8]
जीएनयूस्टेप में "लिब्स-कोरबेस" नामक कोर फाउंडेशन का संस्करण सम्मिलित है।[9]
यह भी देखें
- जीएलआईबी- जीनोम समकक्ष
संदर्भ
- ↑ ridiculous_fish (2006). "पुल".
- ↑ "प्लग-इन और माइक्रोसॉफ्ट के COM". Mac Developer Library. Apple Inc. Archived from the original on 2014-09-01. Retrieved 2015-03-25.
- ↑ "Source Browser".
- ↑ OpenCFLite project on SourceForge.
- ↑ "सीएफलाइट". KJams. Retrieved 19 February 2020.
- ↑ "GitHub पर OpenCFlite प्रोजेक्ट". Retrieved 30 November 2021.
- ↑ "GitHub पर OpenCFNetwork प्रोजेक्ट". Retrieved 30 November 2021.
- ↑ "स्विफ्ट-कोरलिब्स-फाउंडेशन". GitHub. October 14, 2021.
- ↑ "gnustep/libs-corebase: The GNUstep CoreBase Library is a library of general-purpose, non-graphical C objects". GitHub. GNUstep. 19 November 2019.
बाहरी संबंध
- Core Foundation reference at Apple Developer
- ओपनसीएफलाइटat SourceForge
- CFLite including CFNetwork works in 64bit, uses LibreSSL (TLS 1.1, 1.2)