इस प्रोजेक्ट के बारे में

StormByte-Buffer एक C++26 लाइब्रेरी है जो StormByte C++ सूट के लिए बफरिंग और स्ट्रीमिंग प्रिमिटिव प्रदान करती है। यह StormByte-String 1.0.0 या उससे नए संस्करण पर निर्भर करती है (जो StormByte Base 2.0.0 और StormByte-System 2.0.0 को वेंडर करता है) और वैकल्पिक रूप से पाइपलाइन पाइप्स के लिए StormByte-Logger 2.0.0 पर। सार्वजनिक हेडर StormByte/buffer/ के अंतर्गत रहते हैं। सूट के अन्य मॉड्यूल जैसे Base, Config, Crypto, Database, Logger, Multimedia, Network, String और System अलग रिपॉज़िटरी हैं और यहाँ लागू नहीं किए गए हैं। यह मॉड्यूल कई बिल्डिंग ब्लॉक्स को कवर करता है। FIFO एक मांग पर बढ़ने वाला बाइट बफर है जो थ्रेड-सेफ नहीं है; Read और Peek डेटा रखते हैं जबकि Extract उसे उपभोग करता है। SharedFIFO एक थ्रेड-सेफ FIFO है जिसका Read और Extract डेटा आने तक या Close/SetError कॉल होने तक ब्लॉक करते हैं। Ring एक समवर्ती many-to-many रिंग है। Producer और Consumer एक साझा Ring पर केवल-लिखने और केवल-पढ़ने वाले हैंडल हैं। Hopper एक SPSC टाइप्ड क्यू है जिसमें वैकल्पिक बाउंडेड क्षमता होती है, और Sink पूर्णांक कुंजियों को Hopper बकेट्स से मैप करता है। Pipeline उपयोगकर्ता-परिभाषित Pipe लीफ्स के माध्यम से स्ट्रीम बफर्स को ट्रांसफॉर्म करता है, जिसमें Sync, Async और Parallel निष्पादन मोड होते हैं। Bridge ReadOnly/WriteOnly टिप्स या IO लीफ्स के बीच मैनुअल बाइट ट्रांसफर करता है, और Pumper एक Bridge का स्वामित्व रखता है और फ़ाइल के अंत या रद्दीकरण तक एक वर्कर चलाता है। IO BufferedReader और BufferedWriter बेस के साथ-साथ BufferedFileReader और BufferedFileWriter फ़ाइल लीफ्स प्रदान करता है जिनमें ReadAhead और MaxMemory जैसे नेस्टेड Parameters होते हैं। टेलीमेट्री IO ऑफिस और Bridges पर साझा ReadTelemetry और WriteTelemetry हैंडल के रूप में उजागर की जाती है। MeanRate अनुरोधित उपयोगकर्ता ऑपरेशन्स को मापता है, जिसमें कैश हिट्स शामिल हैं, और यह डिस्क बेंचमार्क नहीं है। लाइफसाइकल मेथड्स में Close, SetError, EoF, IsReadable और IsWritable शामिल हैं। Windows पर, एक IO लीफ नष्ट होने तक ओरिजिन हैंडल रखता है, इसलिए एक पाथ तब तक लॉक रहता है जब तक Bridge या Pumper उसे रिलीज़ नहीं करता। इंस्टॉलेशन के लिए C++26 कंपाइलर और CMake 3.28 या उससे नया संस्करण आवश्यक है। एक रिकर्सिव क्लोन के बाद cmake कॉन्फ़िगर और बिल्ड लाइब्रेरी उत्पन्न करता है; BUILD_SHARED_LIBS शेयर्ड बनाम स्टैटिक आउटपुट को नियंत्रित करता है। यह प्रोजेक्ट LGPL v3 या उससे नए संस्करण, या कॉपीराइट धारक से एक व्यावसायिक लाइसेंस के अंतर्गत दोहरे लाइसेंस प्राप्त है। दस्तावेज़ीकरण में यह README और एक Doxygen क्लास रेफरेंस शामिल है, और योगदान सार्वजनिक हेडर्स पर Doxygen के साथ Conventional Commits का पालन करते हैं।