22#include <boost/move/make_unique.hpp>
23#include <experimental/propagate_const>
68template<
typename Persistent_mq_handle>
248 template<
typename Task_err_sz>
250 Task_err_sz&& on_done_func);
272 const std::string&
nickname()
const;
287 using Impl_ptr = std::experimental::propagate_const<boost::movelib::unique_ptr<Blob_stream_mq_receiver_impl<Mq>>>;
292 template<
typename Persistent_mq_handle2>
307template<
typename Persistent_mq_handle>
314template<
typename Persistent_mq_handle>
316template<
typename Persistent_mq_handle>
321template<
typename Persistent_mq_handle>
326template<
typename Persistent_mq_handle>
330 (logger_ptr, nickname_str, std::move(mq), err_code))
335template<
typename Persistent_mq_handle>
339 (std::move(sync_io_core_in_peer_state_moved)))
345template<
typename Persistent_mq_handle>
348template<
typename Persistent_mq_handle>
351 return m_impl ? m_impl->receive_blob_max_size() : 0;
354template<
typename Persistent_mq_handle>
355template<
typename Task_err_sz>
359 return m_impl ? (m_impl->async_receive_blob(target_blob, std::move(on_done_func)),
true)
363template<
typename Persistent_mq_handle>
366 return m_impl ? m_impl->idle_timer_run(timeout)
370template<
typename Persistent_mq_handle>
376template<
typename Persistent_mq_handle>
384template<
typename Persistent_mq_handle>
Base of Blob_stream_mq_sender and Blob_stream_mq_receiver containing certain static facilities,...
Internal, non-movable pImpl-lite implementation of Blob_stream_mq_receiver class template.
typename Base::Mq Mq
Short-hand for template arg for underlying MQ handle type.
Implements Blob_receiver concept by using an adopted Persistent_mq_handle MQ handle to an MQ (message...
Impl_ptr m_impl
The true implementation of this class. See also our class doc header.
std::experimental::propagate_const< boost::movelib::unique_ptr< Blob_stream_mq_receiver_impl< Mq > > > Impl_ptr
Short-hand for const-respecting wrapper around Blob_stream_mq_sender_impl for the pImpl idiom.
const std::string & nickname() const
Returns nickname, a brief string suitable for logging.
static constexpr bool S_BLOB_UNDERFLOW_ALLOWED
Implements concept API; namely it is true.
const Shared_name & absolute_name() const
Returns name equal to mq.absolute_name(), where mq was passed to ctor, at the time it was passed to c...
Blob_stream_mq_receiver & operator=(Blob_stream_mq_receiver &&src)
Move-assigns from src; *this acts as if destructed; src becomes as-if default-cted (therefore in NULL...
Blob_stream_mq_receiver()
Implements Blob_receiver API, per its concept contract.
~Blob_stream_mq_receiver()
Implements Blob_receiver API.
bool idle_timer_run(util::Fine_duration timeout=boost::chrono::seconds(5))
Implements Blob_receiver API per contract.
size_t receive_blob_max_size() const
Implements Blob_receiver API per contract.
Blob_stream_mq_receiver(Blob_stream_mq_receiver &&src)
Move-constructs from src; src becomes as-if default-cted (therefore in NULL state).
Blob_stream_mq_receiver & operator=(const Blob_stream_mq_receiver &)=delete
Copy assignment is disallowed.
bool async_receive_blob(const util::Blob_mutable &target_blob, Task_err_sz &&on_done_func)
Implements Blob_receiver API per contract.
typename Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Mq Mq
Short-hand for template arg for underlying MQ handle type.
static const Shared_name S_RESOURCE_TYPE_ID
Implements concept API. Equals Mq::S_RESOURCE_TYPE_ID.
friend std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver< Persistent_mq_handle2 > &val)
Friend of Blob_stream_mq_sender.
Dummy type for use as a template param to Channel when either the blobs pipe or handles pipe is disab...
String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
static const Shared_name S_EMPTY
A (default-cted) Shared_name. May be useful for functions returning const Shared_name&.
Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) betwe...
std::ostream & operator<<(std::ostream &os, const Bipc_mq_handle &val)
Prints string representation of the given Bipc_mq_handle to the given ostream.
boost::asio::mutable_buffer Blob_mutable
Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.
flow::Fine_duration Fine_duration
Short-hand for Flow's Fine_duration.
const std::string EMPTY_STRING
A (default-cted) string. May be useful for functions returning const std::string&.
flow::util::String_view String_view
Short-hand for Flow's String_view.
flow::Error_code Error_code
Short-hand for flow::Error_code which is very common.