1#ifndef XRPL_SERVER_IO_LIST_H_INCLUDED 
    2#define XRPL_SERVER_IO_LIST_H_INCLUDED 
    4#include <boost/container/flat_map.hpp> 
   21        template <
class = 
void>
 
 
   51    template <
class = 
void>
 
   59    boost::container::flat_map<work*, std::weak_ptr<work>> 
map_;
 
  108    template <
class T, 
class... Args>
 
  130    template <
class Finisher>
 
  154    template <
class = 
void>
 
 
  189template <
class T, 
class... Args>
 
  204        sp->work::ios_ = 
this;
 
  205        map_.emplace(sp.get(), sp);
 
 
  214template <
class Finisher>
 
  222    auto map = std::move(
map_);
 
  227        for (
auto const& p : map)
 
  228            if (
auto sp = p.second.lock())
 
 
io_list & ios()
Return the io_list associated with the work.
 
Manages a set of objects performing asynchronous I/O.
 
~io_list()
Destroy the list.
 
bool closed() const
Return true if the list is closed.
 
void join()
Block until the io_list stops.
 
boost::container::flat_map< work *, std::weak_ptr< work > > map_
 
std::shared_ptr< T > emplace(Args &&... args)
Create associated work if not closed.
 
std::function< void(void)> f_
 
std::condition_variable cv_
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.