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.