Flow 1.0.1
Flow project: Public API.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Cflow::util::Basic_blob< Allocator, S_SHARING_ALLOWED >A hand-optimized and API-tweaked replacement for vector<uint8_t>, i.e., buffer of bytes inside an allocated area of equal or larger size; also optionally supports limited garbage-collected memory pool functionality and SHM-friendly custom-allocator support
 Cflow::util::Basic_blob< std::allocator< uint8_t >, S_SHARING_ALLOWED >
 Cflow::util::Blob_with_log_context< S_SHARING_ALLOWED >Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Logger, enabling easier logging albeit with a small perf trade-off
 Cstd::basic_string_view< Char >STL class
 Cflow::util::Basic_string_view< Ch, Traits >Essentially alias for a C++17-conforming string-view class template, which is a very lightweight std::string-like representation of a character sequence already in memory
 Cflow::perf::Checkpointing_timer::CheckpointThe entirety of the information recorded with each Checkpointing_timer::checkpoint() call; it contains the Duration values (for each Clock_type) with the time elapsed since either the preceding T.checkpoint() or construction
 Cflow::log::ComponentA light-weight class, each object storing a component payload encoding an enum value from enum type of user's choice, and a light-weight ID of that enum type itself
 Cflow::log::ConfigClass used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers is optional but encouraged; supports dynamically changing filter settings even while concurrent logging occurs
 Cflow::util::Container_traits< Container >Properties of various container types
 Cflow::util::Container_traits< boost::unordered_set< T > >Traits of boost::unordered_set
 Cflow::util::Container_traits< std::map< K, V > >Traits of std::map
 Cflow::util::Container_traits< std::set< T > >Traits of std::set
 Cflow::util::Container_traits< util::Linked_hash_map< K, V > >Traits of flow::util::Linked_hash_map
 Cflow::util::Container_traits< util::Linked_hash_set< T, Hash, Pred > >Traits of flow::util::Linked_hash_set
 Cflow::cfg::Option_set< Value_set >::Declare_options_func_argsInternal-use structure to use with Declare_options_func callback
 Cflow::perf::Duration_setConvenience wrapper around an array<Duration, N>, which stores a duration for each of the N possible clock types in perf::Clock_type
 Cflow::cfg::Dynamic_cfg_context< Root, Target, Target_ptr >Class which facilitates managing access to a dynamic configuration
 Cflow::cfg::Final_validator_func< Value_set >Utility/traits type to concisely work with final-validation functions when calling methods like Config_manager::apply_static()
 Cflow::Function< Result(Args...)>Intended as the polymorphic function wrapper of choice for Flow, internally and externally; to be used instead of std::function or boost::function
 Cboost::system::is_error_code_enum<::flow::net_flow::error::Code >Ummm – it specializes this struct to – look – the end result is boost.system uses this as authorization to make enum Code convertible to Error_code
 Cflow::util::Linked_hash_map< Key, Mapped, Hash, Pred >An object of this class is a map that combines the lookup speed of a boost::unordered_map<> and ordering and iterator stability capabilities of an std::list<>
 Cflow::util::Linked_hash_map< Event_type, Sockets >
 Cflow::util::Linked_hash_map< Sequence_number, boost::shared_ptr< Sent_packet > >
 Cflow::util::Linked_hash_set< Key, Hash, Pred >An object of this class is a set that combines the lookup speed of an unordered_set<> and ordering and iterator stability capabilities of an std::list<>
 Cflow::util::Linked_hash_set< Peer_socket_ptr >
 Cflow::log::Log_contextConvenience class that simply stores a Logger and/or Component passed into a constructor; and returns this Logger and Component via get_logger() and get_log_component() public accessors
 Cflow::cfg::Config_manager< Value_set, Null_value_set >
 Cflow::cfg::Static_config_manager< Value_set >A Config_manager-related adapter-style class that manages a simple config setup involving a single (though arbitrarily complex) Option_set<>-ready raw value struct config store type Value_set, meant to be used only in static fashion
 Cflow::async::Cross_thread_task_loopConcrete Concurrent_task_loop that is able to efficiently schedule Tasks within a given Op to execute in different threads while still properly avoiding concurrency
 Cflow::async::Op_listSimple, immutable vector-like sequence of N opaque async::Op objects, usually corresponding to N worker threads, with typically used operations such as [index] and random Op selection
 Cflow::async::Segregated_thread_task_loopConcrete Concurrent_task_loop that uses the legacy pin-Tasks-within-1-Op-to-1-thread method of achieving required non-concurrency of Tasks
 Cflow::async::Single_thread_task_loopA Concurrent_task_loop-related adapter-style class that represents a single-thread task loop; essentially it is pleasant syntactic sugar around a Concurrent_task_loop impl that cuts out concepts that become irrelevant with only one thread involved
 Cflow::async::Timed_single_thread_task_loopIdentical to Single_thread_task_loop, but all tasks posted through it are automatically timed, with the result accessible via accumulated_time()
 Cflow::cfg::Config_manager< S_d_value_set >Manages a config setup, intended for a single daemon process, by maintaining 1 or more set(s) of static config and dynamic config, each, via that number of Option_set<>-ready raw value struct types supplied by the user as template arguments
 Cflow::cfg::Option_set< Value_set >The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a given simple config-holding object, of the type Value_set, a template argument to this class template
 Cflow::log::Async_file_loggerAn implementation of Logger that logs messages to a given file-system path but never blocks any logging thread for file I/O; suitable for heavy-duty file logging
 Cflow::net_flow::Event_setA user-set collection of sockets and desired conditions on those sockets (such as: "socket has data to read"), with the ability to wait for those conditions to become true and signal the user when so
 Cflow::net_flow::Net_env_simulatorObjects of this class can be fed to Node to make it internally simulate network conditions like loss, latency, and data duplication
 Cflow::net_flow::NodeAn object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a distinct IP address and UDP port; and (2) it speaks the Flow protocol over a UDP transport layer
 Cflow::net_flow::asio::NodeA subclass of net_flow::Node that adds the ability to easily and directly use net_flow sockets in general boost.asio event loops
 Cflow::net_flow::Peer_socketA peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support
 Cflow::net_flow::asio::Peer_socketA net_flow::Peer_socket that adds integration with boost.asio
 Cflow::net_flow::Server_socketA server socket able to listen on a single Flow port for incoming connections and return peer sockets (Peer_socket objects) to the local user once such connections are established
 Cflow::net_flow::asio::Server_socketA net_flow::Server_socket that adds integration with boost.asio
 Cflow::perf::Checkpointing_timerThe central class in the perf Flow module, this efficiently times the user's operation, with a specified subset of timing methods; and with the optional ability to time intermediate checkpoints within the overall operation
 Cflow::perf::Checkpointing_timer::AggregatorThis companion/inner class of Checkpointing_timer provides aggregation of results from many Checkpointing_timers each measuring some user operation being repeated many times; particularly when the operation consists of multiple steps (checkpoints) of interest
 Cflow::util::Blob_with_log_context< S_SHARING_ALLOWED >Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Logger, enabling easier logging albeit with a small perf trade-off
 Cflow::log::Msg_metadataSimple data store containing all of the information generated at every logging call site by flow::log, except the message itself, which is passed to Logger::do_log() assuming Logger::should_log() had returned true
 Cflow::net_flow::Node_optionsA set of low-level options affecting a single Flow Node, including Peer_socket objects and other objects subsequently generated by that Flow Node
 Cflow::util::Null_interfaceAn empty interface, consisting of nothing but a default virtual destructor, intended as a boiler-plate-reducing base for any other (presumably virtual-method-having) class that would otherwise require a default virtual destructor
 Cflow::async::Concurrent_task_loopThe core flow::async interface, providing an optionally multi-threaded thread pool onto which runnable Tasks, optionally arranged into concurrency-avoiding Ops, can be boost.asio-posted for subsequent execution
 Cflow::async::Timed_concurrent_task_loop_impl< std::atomic< perf::duration_rep_t > >
 Cflow::async::Timed_concurrent_task_loop_impl< perf::duration_rep_t >
 Cflow::async::Cross_thread_task_loopConcrete Concurrent_task_loop that is able to efficiently schedule Tasks within a given Op to execute in different threads while still properly avoiding concurrency
 Cflow::async::Segregated_thread_task_loopConcrete Concurrent_task_loop that uses the legacy pin-Tasks-within-1-Op-to-1-thread method of achieving required non-concurrency of Tasks
 Cflow::async::Timed_concurrent_task_loop_impl< Time_accumulator >Decorator of a Concurrent_task_loop with same or greater lifetime that accumulates time elapsed in any tasks posted or scheduled onto that loop
 Cflow::async::Single_thread_task_loopA Concurrent_task_loop-related adapter-style class that represents a single-thread task loop; essentially it is pleasant syntactic sugar around a Concurrent_task_loop impl that cuts out concepts that become irrelevant with only one thread involved
 Cflow::log::LoggerInterface that the user should implement, passing the implementing Logger into logging classes (Flow's own classes like net_flow::Node; and user's own logging classes) at construction (plus free/static logging functions)
 Cflow::log::Async_file_loggerAn implementation of Logger that logs messages to a given file-system path but never blocks any logging thread for file I/O; suitable for heavy-duty file logging
 Cflow::log::Buffer_loggerAn implementation of Logger that logs messages to an internal std::string buffer and provides read-only access to this buffer (for example, if one wants to write out its contents when exiting program)
 Cflow::log::Simple_ostream_loggerAn implementation of Logger that logs messages to the given ostreams (e.g., cout or an ofstream for a file)
 Cflow::net_flow::NodeAn object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a distinct IP address and UDP port; and (2) it speaks the Flow protocol over a UDP transport layer
 Cflow::net_flow::Peer_socketA peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support
 Cflow::net_flow::Server_socketA server socket able to listen on a single Flow port for incoming connections and return peer sockets (Peer_socket objects) to the local user once such connections are established
 Cflow::cfg::Config_manager< S_d_value_set >::On_dynamic_change_func_handleOpaque handle for managing a dynamic config change callback
 Cflow::cfg::Option_set_baseUn-templated base for Option_set
 Cflow::cfg::Option_set< Value_set >The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a given simple config-holding object, of the type Value_set, a template argument to this class template
 Cflow::log::Ostream_log_msg_writerUtility class, each object of which wraps a given ostream and outputs discrete messages to it adorned with time stamps and other formatting such as separating newlines
 Cflow::net_flow::Peer_socket_infoA data store that keeps stats about the a Peer_socket connection
 Cflow::net_flow::Peer_socket_optionsA set of low-level options affecting a single Peer_socket
 Cflow::net_flow::Peer_socket_receive_statsA data store that keeps stats about the incoming direction of a Peer_socket connection to another Flow-protocol Peer_socket
 Cflow::net_flow::Peer_socket_send_statsA data store that keeps stats about the outgoing direction of a Peer_socket connection to another Flow-protocol Peer_socket
 Cflow::net_flow::Remote_endpointRepresents the remote endpoint of a Flow-protocol connection; identifies the UDP endpoint of the remote Node and the logical Flow-protocol port within that Node
 Cflow::util::Rnd_gen_uniform_range_baseBase class for Rnd_gen_uniform_range and Rnd_gen_uniform_range_mt for various aliases and similar, so template arguments need not be involved
 Cflow::util::Rnd_gen_uniform_range< size_t >
 Cflow::util::Rnd_gen_uniform_range_mt< size_t >
 Cflow::util::Rnd_gen_uniform_range< Peer_socket::security_token_t >
 Cflow::util::Rnd_gen_uniform_range< range_t >Simple, non-thread-safe uniform-range random number generator
 Cflow::util::Rnd_gen_uniform_range_mt< range_t >Identical to Rnd_gen_uniform_range but safe for concurrent RNG given a single object
 Cflow::error::Runtime_errorAn std::runtime_error (which is an std::exception) that stores an Error_code
 Cflow::util::Scoped_setter< Value >A simple RAII-pattern class template that, at construction, sets the specified location in memory to a specified value, memorizing the previous contents; and at destruction restores the value
 Cflow::util::Shared_ptr_alias_holder< Target_ptr, Const_target_ptr >Convenience class template that endows the given subclass T with nested aliases Ptr and Const_ptr aliased to shared_ptr<T> and shared_ptr<const T> respectively
 Cflow::util::Shared_ptr_alias_holder< boost::shared_ptr< Event_set > >
 Cflow::net_flow::Event_setA user-set collection of sockets and desired conditions on those sockets (such as: "socket has data to read"), with the ability to wait for those conditions to become true and signal the user when so
 Cflow::util::Shared_ptr_alias_holder< boost::shared_ptr< Null_value_set > >
 Cflow::cfg::Null_value_setEmpty struct suitable as a *_value_set template arg for Config_manager, when a slot requires a Value_set, but you have no config to actually parse there
 Cflow::util::Shared_ptr_alias_holder< boost::shared_ptr< Peer_socket > >
 Cflow::net_flow::Peer_socketA peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support
 Cflow::util::Shared_ptr_alias_holder< boost::shared_ptr< Peer_socket::Received_packet > >
 Cflow::util::Shared_ptr_alias_holder< boost::shared_ptr< Peer_socket::Sent_packet > >
 Cflow::util::Shared_ptr_alias_holder< boost::shared_ptr< Server_socket > >
 Cflow::net_flow::Server_socketA server socket able to listen on a single Flow port for incoming connections and return peer sockets (Peer_socket objects) to the local user once such connections are established
 Cflow::net_flow::Event_set::Socket_as_any_equalsEquality predicate class used in storing various sockets of types wrapped as boost::anys in the Sockets type
 Cflow::net_flow::Event_set::Socket_as_any_hashHasher class used in storing various sockets of types wrapped as boost::anys in the Sockets type
 Cflow::util::String_ostreamSimilar to ostringstream but allows fast read-only access directly into the std::string being written; and some limited write access to that string
 Cflow::log::Async_file_logger::Throttling_cfgControls behavior of the throttling algorithm as described in Async_file_logger doc header Throttling section
 Cflow::perf::Time_pt_setConvenience wrapper around an array<Time_pt, N>, which stores a time point for each of the N possible clock types in perf::Clock_type
 Cflow::util::Unique_id_holderEach object of this class stores (at construction) and returns (on demand) a numeric ID unique from all other objects of the same class ever constructed, across all time from program start to end
 Cflow::log::LoggerInterface that the user should implement, passing the implementing Logger into logging classes (Flow's own classes like net_flow::Node; and user's own logging classes) at construction (plus free/static logging functions)
 Cflow::log::Verbosity_configOptional-use structure encapsulating a full set of verbosity config, such that one can parse it from a config source (like an options file) in concise form and apply it to a log::Config object