Flow 1.0.0
Flow project: Public API.
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