A সাবস্ক্রিপশন ৷ ডেটা মধ্যস্থতার উদ্দেশ্যে ঠিক একজন প্রকাশক এবং একজন গ্রাহকের দ্বারা ভাগ করা যেতে পারে বিনিময় . এটাই হল subscribe() পদ্ধতি তৈরি করা সদস্যতা ফেরত দেয় না, পরিবর্তে অকার্যকর ফেরত দেয় . সাবস্ক্রিপশন শুধুমাত্র onSubscribe() এর মাধ্যমে সাবস্ক্রাইবারকে দেওয়া হয় পদ্ধতি কলব্যাক। সদস্যতা ইন্টারফেসে দুটি পদ্ধতি রয়েছে:অনুরোধ() এবং বাতিল() .
সিনট্যাক্স
public interface Subscription { public void request(long n); public void cancel(); }
সাবস্ক্রিপশন ইন্টারফেসের জন্য নিয়ম:
- Subscription.request() এবং Subscription.cancel() পদ্ধতিগুলিকে শুধুমাত্র তার গ্রাহক প্রসঙ্গের মধ্যেই বলা উচিত৷ ৷
- সাবস্ক্রিপশন অবশ্যই গ্রাহককে Subscription.request() কল করার অনুমতি দেবে onNext() এর মধ্যে থেকে সিঙ্ক্রোনাস পদ্ধতি অথবা অনসাবস্ক্রাইব() পদ্ধতি।
- Subscription.request() পদ্ধতিটিকে অবশ্যই প্রকাশক এর মধ্যে সম্ভাব্য সিঙ্ক্রোনাস পুনরাবৃত্তির উপর একটি ঊর্ধ্বসীমা স্থাপন করতে হবে এবং সাবস্ক্রাইবার .
- Subscription.request() পদ্ধতিটি যথাসময়ে ফিরে আসার মাধ্যমে এর কলারের দায়িত্বশীলতাকে সম্মান করা উচিত।
- Subscription.cancel() পদ্ধতিটিকে অবশ্যই যথাসময়ে ফিরে আসার মাধ্যমে এর কলারের দায়বদ্ধতাকে সম্মান করতে হবে এবং অবশ্যই থ্রেড-সেফ হতে হবে .
- যদিও সদস্যতা বাতিল করা হয় না, Subscription.request(long n) পদ্ধতিটি অবশ্যই একটি নির্দিষ্ট সংখ্যক অতিরিক্ত উপাদান নিবন্ধন করতে হবে যা একটি সংশ্লিষ্ট গ্রাহকের কাছে উত্পাদিত হবে৷
- যদিও সদস্যতা বাতিল করা হয় না, Subscription.request(long n) পদ্ধতিকে অবশ্যই কল করতে হবে onError() একটি অবৈধ আর্গুমেন্ট ব্যতিক্রম সহ পদ্ধতি যদি আর্গুমেন্ট হয় <=0।
- যদিও সদস্যতা বাতিল করা হয় না, Subscription.request(long n) পদ্ধতি সিঙ্ক্রোনাসভাবে কল করতে পারে onNext() এই বা অন্যান্য গ্রাহকদের উপর পদ্ধতি।
- যদিও সদস্যতা বাতিল করা হয় না, Subscription.request(long n) পদ্ধতি সিঙ্ক্রোনাসভাবে কল করতে পারে onComplete() অথবা onError() এই বা অন্যান্য গ্রাহকদের পদ্ধতি।
- যদিও সদস্যতা বাতিল করা হয় না, Subscription.cancel() পদ্ধতি অবশ্যই প্রকাশককে তার গ্রাহককে সংকেত দেওয়া বন্ধ করার জন্য অনুরোধ করতে হবে। অবিলম্বে সদস্যতা প্রভাবিত করার জন্য অপারেশনের প্রয়োজন হতে পারে না।
- যদিও সদস্যতা বাতিল করা হয় না, Subscription.cancel() পদ্ধতিটি অবশ্যই প্রকাশককে সংশ্লিষ্ট গ্রাহকের কাছে কোনো রেফারেন্স ড্রপ করার জন্য অনুরোধ করবে।
- কল করা হচ্ছে Subscription.cancel() এবং Subscription.request () পদ্ধতি অবশ্যই স্বাভাবিকভাবে ফিরে আসবে।
- সাবস্ক্রিপশন অনুরোধ করতে এবং 2^63-1 পর্যন্ত একটি চাহিদা সমর্থন করার জন্য একটি সীমাহীন সংখ্যক কল সমর্থন করতে হবে . যদি 2^63-1 এর সমান বা তার বেশি চাহিদা প্রকাশক দ্বারা কার্যকরভাবে হিসাবে বিবেচনা করা যেতে পারে সীমাহীন .