Flow-IPC 1.0.0
Flow-IPC project: Full implementation reference.
Namespaces | Typedefs | Functions
util_fwd.hpp File Reference
#include "ipc/util/util_fwd.hpp"
#include "ipc/util/shared_name_fwd.hpp"
#include <flow/common.hpp>
#include <boost/array.hpp>

Go to the source code of this file.

Namespaces

namespace  ipc
 Catch-all namespace for the Flow-IPC project: A library/API in modern C++17 providing high-performance communication between processes.
 
namespace  ipc::util
 Flow-IPC module containing miscellaneous general-use facilities that ubiquitously used by ~all Flow-IPC modules and/or do not fit into any other Flow-IPC module.
 
namespace  ipc::util::sync_io
 Contains common code, as well as important explanatory documentation in the following text, for the sync_io pattern used in ipc::transport and ipc::session to provide fine-tuned control over integrating asynchronous Flow-IPC activities into the user's event loop.
 

Typedefs

using ipc::util::Pipe_writer = boost::asio::writable_pipe
 Short-hand for anonymous pipe write end. More...
 
using ipc::util::Pipe_reader = boost::asio::readable_pipe
 Short-hand for anonymous pipe read end. More...
 

Functions

template<typename Func >
void ipc::util::op_with_possible_bipc_exception (flow::log::Logger *logger_ptr, Error_code *err_code, const Error_code &misc_bipc_lib_error, String_view context, const Func &func)
 Internal (to ipc) utility that invokes the given function that invokes a boost.interprocess operation that is documented to throw bipc::interprocess_exception on failure; if indeed it throws the utility emits an error in the Flow error-reporting style. More...
 
void ipc::util::pipe_produce (flow::log::Logger *logger_ptr, Pipe_writer *pipe)
 Writes a byte to the given pipe writer. More...
 
void ipc::util::pipe_consume (flow::log::Logger *logger_ptr, Pipe_reader *pipe)
 Reads a byte via the given pipe reader. More...
 
Shared_name ipc::util::build_conventional_non_session_based_shared_name (const Shared_name &resource_type)
 Builds an absolute name according to the path convention explained in Shared_name class doc header; this overload applies to resources outside the ipc::session paradigm. More...
 
template<typename Handle_name_func >
void ipc::util::for_each_persistent_impl (const fs::path &persistent_obj_dev_dir_path, const Handle_name_func &handle_name_func)
 Implementation of Persistent_object::for_each_persistent(); for example see shm::classic::Pool_arena::for_each_persistent(). More...
 
template<typename Handle_name_func >
void ipc::util::for_each_persistent_shm_pool (const Handle_name_func &handle_name_func)
 Equivalent to shm::classic::Pool_arena::for_each_persistent(). More...
 
void ipc::util::remove_persistent_shm_pool (flow::log::Logger *logger_ptr, const Shared_name &name, Error_code *err_code)
 Equivalent to shm::classic::Pool_arena::remove_persistent(). More...
 
std::ostream & ipc::util::sync_io::operator<< (std::ostream &os, const Timer_event_emitter &val)
 Prints string representation of the given Timer_event_emitter to the given ostream. More...