फ्लो API जावा 9 में रिएक्टिव स्ट्रीम से मेल खाती है विनिर्देश, जो एक वास्तविक मानक है। इसमें इंटरफेस का एक न्यूनतम सेट होता है जो एसिंक्रोनस प्रकाशन और सदस्यता के दिल को पकड़ लेता है।
नीचे फ्लो API के प्रमुख इंटरफेस दिए गए हैं :
1) प्रवाह। प्रकाशक: यह ग्राहकों के उपभोग के लिए वस्तुओं का उत्पादन करता है, और इसमें केवल विधि शामिल है:सदस्यता (सदस्य) , जिसका उद्देश्य स्पष्ट होना चाहिए।
सिंटैक्स
void subscribe(Flow.Subscriber<? super T> subscriber)
2) प्रवाह। सदस्य: यह आइटम प्राप्त करने के लिए प्रकाशकों (आमतौर पर केवल एक) की सदस्यता लेता है (विधि onNext(T) के माध्यम से) ), त्रुटि संदेश (त्रुटि पर (थ्रो करने योग्य) ), या एक संकेत है कि कोई और आइटम अपेक्षित नहीं है (onComplete() ) इनमें से कुछ भी होने से पहले, प्रकाशक ऑनसब्सक्रिप्शन(सदस्यता) . पर कॉल करता है विधि।
सिंटैक्स
void onSubscribe(Flow.Subscription subscription) void onNext(T item) void onError(Throwable throwable) void onComplete()
3) प्रवाह। सदस्यता: एकल प्रकाशक . के बीच संबंध और एक एकल सदस्य . ग्राहक इसका उपयोग अधिक वस्तुओं का अनुरोध करने के लिए कर सकता है (अनुरोध (लंबा) ) या कनेक्शन तोड़ दें (रद्द करें () )।
सिंटैक्स
void request(long n) void cancel()
flow API के लिए निष्पादन चरण:
- सबसे पहले, हमें एक प्रकाशक बनाना होगा और एक सदस्य ।
- सदस्य बनें प्रकाशक::सदस्यता लें ।
- द प्रकाशक एक सदस्यता . बनाता है और कॉल करता है सदस्यता ::सदस्यता पर इसके साथ, ताकि सब्सक्राइबर सब्सक्रिप्शन को स्टोर कर सके।
- किसी समय, ग्राहक सदस्यता:: . पर कॉल करता है अनुरोध कई मदों का अनुरोध करने के लिए।
- प्रकाशक Subscriber::onNext पर कॉल करके सब्सक्राइबर को आइटम सौंपना शुरू करता है . यह कभी भी अनुरोधित संख्या से अधिक आइटम प्रकाशित नहीं करता है।
- किसी समय प्रकाशक मुश्किल में पड़ सकता है और सब्सक्राइबर::ऑनकंप्लीट को कॉल कर सकता है या सदस्य ::त्रुटि पर , क्रमशः।
- ग्राहक या तो समय-समय पर अधिक आइटम का अनुरोध करना जारी रख सकता है या सदस्यता::रद्द करें पर कॉल करके कनेक्शन काट सकता है ।