131class Service : 
public std::enable_shared_from_this<Service> {
 
  133  explicit Service(
ActionRegistry* absl_nullable action_registry = 
nullptr,
 
  134                   ConnectionHandler connection_handler = RunSimpleSession,
 
  135                   ChunkStoreFactory chunk_store_factory = {});
 
  140  Service(
const Service& other) = 
delete;
 
  141  Service& operator=(
const Service& other) = 
delete;
 
  161  auto GetSessionKeys() 
const -> std::vector<std::string>;
 
  186                           ConnectionHandler connection_handler = 
nullptr)
 
  187      -> absl::StatusOr<std::shared_ptr<StreamToSessionConnection>>;
 
  233  void JoinConnectionsAndCleanUp(
bool cancel = 
false) ABSL_LOCKS_EXCLUDED(mu_);
 
  237      ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
 
  239  std::unique_ptr<ActionRegistry> action_registry_;
 
  240  ConnectionHandler connection_handler_;
 
  241  ChunkStoreFactory chunk_store_factory_;
 
  243  mutable act::Mutex mu_;
 
  244  absl::flat_hash_map<std::string, std::shared_ptr<WireStream>> streams_
 
  245      ABSL_GUARDED_BY(mu_);
 
  248  absl::flat_hash_map<std::string, std::unique_ptr<NodeMap>> node_maps_
 
  249      ABSL_GUARDED_BY(mu_);
 
  250  absl::flat_hash_map<std::string, std::unique_ptr<Session>> sessions_
 
  251      ABSL_GUARDED_BY(mu_);
 
  252  absl::flat_hash_map<std::string, std::shared_ptr<StreamToSessionConnection>>
 
  253      connections_ ABSL_GUARDED_BY(mu_);
 
  254  absl::flat_hash_map<std::string, absl::flat_hash_set<std::string>>
 
  255      streams_per_session_ ABSL_GUARDED_BY(mu_);
 
  256  absl::flat_hash_map<std::string, std::unique_ptr<thread::Fiber>>
 
  257      connection_fibers_ ABSL_GUARDED_BY(mu_);
 
  259  bool cleanup_started_ ABSL_GUARDED_BY(mu_) = 
false;
 
  260  thread::PermanentEvent cleanup_done_;
 
 
auto EstablishConnection(std::shared_ptr< WireStream > &&stream, ConnectionHandler connection_handler=nullptr) -> absl::StatusOr< std::shared_ptr< StreamToSessionConnection > >
Definition service.cc:130