DataBufferWindow

পাবলিক ইন্টারফেস DataBufferWindow
পরিচিত পরোক্ষ উপশ্রেণী

DataBuffer অংশ দেখার জন্য একটি পরিবর্তনযোগ্য ধারক।

ডেটা বাফার উইন্ডোগুলির একটি নির্দিষ্ট আকার থাকে এবং offset(long) এর মতো একটি নতুন বাফার উদাহরণ বরাদ্দ না করে ডেটার বিভিন্ন ভিউ প্রদান করতে একটি বাফার বরাবর "slide" করতে পারে। এই অপারেশনটি ঘন ঘন পুনরাবৃত্তি হলে এটি সামগ্রিক কর্মক্ষমতা উন্নত করে। যেমন:

IntDataBuffer bufferA = DataBuffers.ofInts(1024);
 // ... init buffer data
 IntDataBuffer bufferB = DataBuffers.ofInts(1, 2, 3, 4);

 // Return the index of the first occurrence of bufferB in bufferA using a sliding window
 DataBufferWindow<IntDataBuffer> windowA = bufferA.window(4);
 for (int i = 0; i < bufferA.size() - bufferB.size(); ++i) {
     if (windowA.slideTo(i).buffer().equals(bufferB)) {
         return i;
     
 }
 }

DataBufferWindow দৃষ্টান্তগুলি রাষ্ট্রীয় এবং থ্রেড-নিরাপদ নয়।

পাবলিক পদ্ধতি

বিমূর্ত বি
বাফার ()
এই উইন্ডোর ব্যাকিং বাফার ফেরত দেয়।
বিমূর্ত দীর্ঘ
অফসেট ()
আসল বাফারে এই উইন্ডোটির বর্তমান অফসেট প্রদান করে।
বিমূর্ত দীর্ঘ
আকার ()
এই বাফার উইন্ডোর আকার প্রদান করে।
বিমূর্ত DataBufferWindow <B>
স্লাইড (দীর্ঘ ধাপ)
মূল বাফারে step উপাদানগুলির উইন্ডো সরানো হয়।
বিমূর্ত DataBufferWindow <B>
স্লাইডটু (দীর্ঘ সূচক)
মূল বাফারে প্রদত্ত অবস্থানে উইন্ডোটি সরানো হয়।

পাবলিক পদ্ধতি

পাবলিক বিমূর্ত B বাফার ()

এই উইন্ডোর ব্যাকিং বাফার ফেরত দেয়।

প্রতিটি উইন্ডো ইন্সট্যান্সের নিজস্ব বাফার থাকে যা মূল DataBuffer এ একটি ভিউ প্রদান করে। যখন উইন্ডোটি বিভিন্ন অফসেটে স্লাইড করে তখন বাফারগুলি পরিবর্তিত হয়৷ যেমন:

IntDataBuffer buffer = DataBuffers.of(0, 1, 2, 3);
 DataBufferWindow<IntDataBuffer> window = buffer.window(0, 2);

 IntDataBuffer windowBuffer = window.buffer();
 assertEquals(0, windowBuffer.getInt(0));
 assertEquals(1, windowBuffer.getInt(1));

 window.slideTo(2);
 assertEquals(2, windowBuffer.getInt(0));
 assertEquals(3, windowBuffer.getInt(1));
 assertSame(windowBuffer, window.buffer());
 

রিটার্নস
  • এই জানালার বাফার

পাবলিক বিমূর্ত দীর্ঘ অফসেট ()

আসল বাফারে এই উইন্ডোটির বর্তমান অফসেট প্রদান করে।

পাবলিক বিমূর্ত লম্বা আকার ()

এই বাফার উইন্ডোর আকার প্রদান করে।

সর্বজনীন বিমূর্ত DataBufferWindow <B> স্লাইড (দীর্ঘ ধাপ)

মূল বাফারে step উপাদানগুলির উইন্ডো সরানো হয়।

উইন্ডোর আকার একই থাকে এবং এর অফসেট offset() + step সেট করা হয়। যদি step ইতিবাচক হয়, তাহলে উইন্ডোটি সামনে স্লাইড করবে। এটি নেতিবাচক হলে, এটি পিছনে স্লাইড হবে.

পরামিতি
পদক্ষেপ এই উইন্ডোর বর্তমান অফসেটে যোগ করার মান
রিটার্নস
  • এই উদাহরণ
নিক্ষেপ করে
IndexOutOfBoundsException যদি উইন্ডোটি স্লাইড করা যায় না কারণ এটি মূল বাফার সীমা অতিক্রম করে

সর্বজনীন বিমূর্ত DataBufferWindow <B> slideTo (দীর্ঘ সূচক)

মূল বাফারে প্রদত্ত অবস্থানে উইন্ডোটি সরানো হয়।

উইন্ডোর আকার একই থাকে এবং এর অফসেট index এ সেট করা হয়, যাতে index xbuffer() এর মান অ্যাক্সেস করলে মূল বাফারে index + x এর মান ফিরে আসবে।

পরামিতি
সূচক এই উইন্ডোর জন্য নতুন অফসেট
রিটার্নস
  • এই উদাহরণ
নিক্ষেপ করে
IndexOutOfBoundsException যদি উইন্ডোটি স্লাইড করা যায় না কারণ এটি মূল বাফার সীমা অতিক্রম করে