22#include <boost/move/make_unique.hpp>
23#include <experimental/propagate_const>
160template<
typename Persistent_mq_handle>
366 template<
typename Task_err>
412 const std::string&
nickname()
const;
427 using Impl_ptr = std::experimental::propagate_const<boost::movelib::unique_ptr<Impl>>;
432 template<
typename Persistent_mq_handle2>
445template<
typename Persistent_mq_handle>
452template<
typename Persistent_mq_handle>
454template<
typename Persistent_mq_handle>
459template<
typename Persistent_mq_handle>
464template<
typename Persistent_mq_handle>
467 m_impl(boost::movelib::make_unique<
Impl>
468 (logger_ptr, nickname_str, std::move(mq), err_code))
473template<
typename Persistent_mq_handle>
477 m_impl(boost::movelib::make_unique<
Impl>
478 (std::move(sync_io_core_in_peer_state_moved)))
484template<
typename Persistent_mq_handle>
487template<
typename Persistent_mq_handle>
490 return m_impl ? m_impl->send_blob_max_size() : 0;
493template<
typename Persistent_mq_handle>
496 return m_impl ? (m_impl->send_blob(blob, err_code),
true)
500template<
typename Persistent_mq_handle>
501template<
typename Task_err>
504 return m_impl ? m_impl->async_end_sending(std::move(on_done_func)) :
false;
507template<
typename Persistent_mq_handle>
510 return m_impl ? m_impl->end_sending() :
false;
513template<
typename Persistent_mq_handle>
516 return m_impl ? m_impl->auto_ping(period) :
false;
519template<
typename Persistent_mq_handle>
522 return m_impl ? m_impl->blob_send_stats()
528template<
typename Persistent_mq_handle>
531 if (m_impl) { m_impl->blob_send_stats_reset(); }
534template<
typename Persistent_mq_handle>
540template<
typename Persistent_mq_handle>
548template<
typename Persistent_mq_handle>
551 return val.
m_impl ? (os << *val.
m_impl) : (os <<
"null");
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 end_sending()
Implements Blob_sender API per contract.
size_t send_blob_max_size() const
Implements Blob_sender API per contract.
static const Shared_name S_RESOURCE_TYPE_ID
Implements concept API. Equals Mq::S_RESOURCE_TYPE_ID.
bool auto_ping(util::Fine_duration period=boost::chrono::seconds{2})
Implements Blob_sender API per contract.
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.
transport::stat::Blob_snd_stats Blob_snd_stats
Implements Blob_sender concept API.
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...
std::experimental::propagate_const< boost::movelib::unique_ptr< Impl > > Impl_ptr
Short-hand for const-respecting wrapper around Impl for the pImpl idiom.
Blob_stream_mq_sender()
Implements Blob_sender API, per its concept contract.
void blob_send_stats_reset()
Implements Blob_sender API per 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.
Blob_stream_mq_sender(const Blob_stream_mq_sender &)=delete
Copy construction is disallowed.
Blob_snd_stats blob_send_stats() const
Implements Blob_sender API per contract.
bool send_blob(const util::Blob_const &blob, Error_code *err_code=nullptr)
Implements Blob_sender API per contract.
typename Impl::Mq Mq
Short-hand for template arg for underlying MQ handle type.
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 Generic_msg_batch_in< Msg_resource_t, NO_HNDLS > &val)
Prints string representation of the given Generic_msg_batch_in 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.
Cumulative stats from the outgoing-direction (send) pipe of a Blob_sender or Native_handle_sender con...