एक प्रकाशक अपने ग्राहकों से प्राप्त मांग के अनुसार उन्हें प्रकाशित करने वाले अनुक्रमित तत्वों की एक असीमित संख्या का प्रदाता है। प्रकाशक
public interface Publisher<T> { public void subscribe(Subscriber<? super T> s); }
प्रकाशक इंटरफ़ेस के नियम:
- अगले पर () . की कुल संख्या प्रकाशक . द्वारा संकेतित तरीके एक सदस्य . के लिए सब्सक्राइबर सदस्यता . द्वारा अनुरोधित तत्वों की कुल संख्या से कम या उसके बराबर होना चाहिए हर समय।
- एक प्रकाशक कम संकेत दे सकते हैं अगले पर () अनुरोध की तुलना में विधियाँ, और सदस्यता . समाप्त करें पूर्ण पर कॉल करके () या त्रुटि पर() तरीके।
- द सदस्यता पर () , अगले पर () , ऑन एरर () , और पूर्ण पर() एक सदस्य . को संकेतित तरीके क्रमिक रूप से संकेत किया जाना चाहिए।
- यदि प्रकाशक विफल रहता है, तो उसे एक ऑनएरर () signal का संकेत देना चाहिए विधि।
- यदि प्रकाशक सफलतापूर्वक समाप्त हो जाता है, तो उसे पूर्ण () . पर संकेत करना चाहिए विधि।
- यदि प्रकाशक संकेत देता है या तो त्रुटि पर() या पूर्ण होने पर () सदस्य . पर विधि , तो सब्सक्राइबर की सदस्यता रद्द कर दी जानी चाहिए।
- टर्मिनल स्थिति के संकेत मिलने के बाद (onError() , पूर्ण होने पर () ), यह आवश्यक है कि आगे कोई संकेत न हो।
- अगर सदस्यता रद्द कर दी जाती है, तो इसके सब्सक्राइबर को सिग्नल मिलना बंद कर देना चाहिए।
- Publisher.subscribe() विधि को ऑनसब्सक्राइब () पर कॉल करना चाहिए उस सब्सक्राइबर . को किसी भी अन्य सिग्नल से पहले प्रदान किए गए सब्सक्राइबर पर विधि और सामान्य रूप से लौटता है, सिवाय इसके कि जब प्रदान किया गया सब्सक्राइबर शून्य हो। इस मामले में, उसे एक NullPointerException . फेंकना होगा फोन करने वाले को।
- Publisher.subscribe() विधि हर बार एक अलग सब्सक्राइबर के साथ जितनी बार आवश्यक हो कॉल कर सकती है।
- एक प्रकाशक एकाधिक सदस्यों का समर्थन कर सकता है और यह निर्णय लेता है कि प्रत्येक सदस्यता यूनिकास्ट . हो सकती है या नहीं या मल्टीकास्ट ।