প্রকল্প সম্পর্কে
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 হলো একটি grow-on-demand বাইট বাফার, যা থ্রেড-সেফ নয়; Read এবং Peek ডেটা রাখে, আর Extract তা ব্যবহার করে। SharedFIFO হলো একটি থ্রেড-সেফ FIFO, যার Read এবং Extract ডেটা আসা পর্যন্ত বা Close/SetError কল করা পর্যন্ত ব্লক করে। Ring হলো একটি concurrent many-to-many রিং। Producer এবং Consumer হলো একটি শেয়ার্ড Ring-এর উপর write-only এবং read-only হ্যান্ডেল। Hopper হলো একটি SPSC টাইপড কিউ, যার ঐচ্ছিক bounded capacity আছে, এবং Sink ইন্টিজার কী-কে Hopper বাকেটে ম্যাপ করে। Pipeline ব্যবহারকারী-নির্ধারিত Pipe লিফের মাধ্যমে স্ট্রিম বাফার ট্রান্সফর্ম করে, যার Sync, Async এবং Parallel এক্সিকিউশন মোড আছে। Bridge ReadOnly/WriteOnly টিপ বা IO লিফের মধ্যে ম্যানুয়াল বাইট ট্রান্সফার করে, এবং Pumper একটি Bridge-এর মালিক হয় এবং ফাইল শেষ বা বাতিল পর্যন্ত একটি ওয়ার্কার চালায়। IO BufferedReader এবং BufferedWriter বেস প্রদান করে, সাথে BufferedFileReader এবং BufferedFileWriter ফাইল লিফ, যেগুলোতে ReadAhead এবং MaxMemory-এর মতো নেস্টেড Parameters থাকে।
টেলিমেট্রি IO অফিস এবং Bridge-এ শেয়ার্ড ReadTelemetry এবং WriteTelemetry হ্যান্ডেল হিসেবে প্রকাশ করা হয়। MeanRate অনুরোধকৃত ব্যবহারকারী অপারেশন পরিমাপ করে, ক্যাশ হিটসহ, এবং এটি কোনো ডিস্ক বেঞ্চমার্ক নয়। লাইফসাইকল পদ্ধতির মধ্যে Close, SetError, EoF, IsReadable এবং IsWritable অন্তর্ভুক্ত। Windows-এ, একটি IO লিফ ধ্বংস হওয়া পর্যন্ত origin হ্যান্ডেল ধরে রাখে, তাই Bridge বা Pumper এটি রিলিজ না করা পর্যন্ত একটি পাথ লক থাকে।
ইনস্টলেশনের জন্য একটি C++26 কম্পাইলার এবং CMake 3.28 বা নতুন সংস্করণ প্রয়োজন। একটি recursive clone-এর পর cmake configure এবং build লাইব্রেরি তৈরি করে; BUILD_SHARED_LIBS শেয়ার্ড বনাম স্ট্যাটিক আউটপুট নিয়ন্ত্রণ করে। প্রকল্পটি LGPL v3 বা নতুন সংস্করণ, অথবা কপিরাইট ধারকের কাছ থেকে একটি বাণিজ্যিক লাইসেন্সের অধীনে দ্বৈত-লাইসেন্সকৃত। ডকুমেন্টেশনে এই README এবং একটি Doxygen ক্লাস রেফারেন্স অন্তর্ভুক্ত, এবং অবদানগুলো Conventional Commits অনুসরণ করে, পাবলিক হেডারে Doxygen সহ।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.