22#include <boost/move/make_unique.hpp>
23#include <experimental/propagate_const>
163template<
typename Persistent_mq_handle>
376 template<
typename Task_err>
409 const std::string&
nickname()
const;
424 using Impl_ptr = std::experimental::propagate_const<boost::movelib::unique_ptr<Blob_stream_mq_sender_impl<Mq>>>;
429 template<
typename Persistent_mq_handle2>
442template<
typename Persistent_mq_handle>
449template<
typename Persistent_mq_handle>
451template<
typename Persistent_mq_handle>
456template<
typename Persistent_mq_handle>
461template<
typename Persistent_mq_handle>
465 (logger_ptr, nickname_str, std::move(mq), err_code))
470template<
typename Persistent_mq_handle>
475 (std::move(sync_io_core_in_peer_state_moved)))
481template<
typename Persistent_mq_handle>
484template<
typename Persistent_mq_handle>
487 return m_impl ? m_impl->send_blob_max_size() : 0;
490template<
typename Persistent_mq_handle>
493 return m_impl ? (m_impl->send_blob(blob, err_code),
true)
497template<
typename Persistent_mq_handle>
498template<
typename Task_err>
501 return m_impl ? m_impl->async_end_sending(std::move(on_done_func)) :
false;
504template<
typename Persistent_mq_handle>
507 return m_impl ? m_impl->end_sending() :
false;
510template<
typename Persistent_mq_handle>
513 return m_impl ? m_impl->auto_ping(period) :
false;
516template<
typename Persistent_mq_handle>
522template<
typename Persistent_mq_handle>
530template<
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_sender class template.
typename Base::Mq Mq
Short-hand for template arg for underlying MQ handle type.
Implements Blob_sender concept by using an adopted Persistent_mq_handle MQ handle to an MQ (message q...
~Blob_stream_mq_sender()
Implements Blob_sender API.
bool send_blob(const util::Blob_const &blob, Error_code *err_code=0)
Implements Blob_sender API per contract.
bool end_sending()
Implements Blob_sender API per contract.
size_t send_blob_max_size() const
Implements Blob_sender API per contract.
bool auto_ping(util::Fine_duration period=boost::chrono::seconds(2))
Implements Blob_sender API per contract.
static const Shared_name S_RESOURCE_TYPE_ID
Implements concept API. Equals Mq::S_RESOURCE_TYPE_ID.
Blob_stream_mq_sender & operator=(Blob_stream_mq_sender &&src)
Move-assigns from src; *this acts as if destructed; src becomes as-if default-cted (therefore in NULL...
Blob_stream_mq_sender & operator=(const Blob_stream_mq_sender &)=delete
Copy assignment is disallowed.
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...
typename Blob_stream_mq_sender_impl< Persistent_mq_handle >::Mq Mq
Short-hand for template arg for underlying MQ handle type.
Blob_stream_mq_sender()
Implements Blob_sender API, per its concept contract.
const std::string & nickname() const
Returns nickname, a brief string suitable for logging.
friend std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_sender< Persistent_mq_handle2 > &val)
Friend of Blob_stream_mq_sender.
std::experimental::propagate_const< boost::movelib::unique_ptr< Blob_stream_mq_sender_impl< Mq > > > Impl_ptr
Short-hand for const-respecting wrapper around Blob_stream_mq_sender_impl for the pImpl idiom.
Blob_stream_mq_sender(const Blob_stream_mq_sender &)=delete
Copy construction is disallowed.
Blob_stream_mq_sender(Blob_stream_mq_sender &&src)
Move-constructs from src; src becomes as-if default-cted (therefore in NULL state).
bool async_end_sending(Task_err &&on_done_func)
Implements Blob_sender API per contract.
Impl_ptr m_impl
The true implementation of this class. See also our class doc header.
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.
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&.
boost::asio::const_buffer Blob_const
Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.
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.