A11 (C++ runtime)
Native C++ implementation of the A11 action and streaming runtime
Loading...
Searching...
No Matches
node_map.h File Reference

A registry of AsyncNodes keyed by node id. More...

#include <cstddef>
#include <functional>
#include <memory>
#include <string>
#include <string_view>
#include <absl/base/thread_annotations.h>
#include <absl/container/flat_hash_map.h>
#include <absl/status/status.h>
#include <absl/status/statusor.h>
#include "thread/boost_primitives.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  a11::nodes::NodeMap
 A thread-safe registry of AsyncNodes keyed by id. More...
 

Namespaces

namespace  a11
 
namespace  a11::stores
 
namespace  a11::nodes
 

Typedefs

using a11::nodes::ChunkStoreFactory = std::function< absl::StatusOr< std::shared_ptr< stores::ChunkStore > >(std::string node_id)>
 Callable invoked to construct the backing chunk store for a new node from its id.
 

Detailed Description

A registry of AsyncNodes keyed by node id.

A NodeMap owns a collection of AsyncNode instances addressed by string id, lazily creating nodes on demand through a ChunkStoreFactory that builds each node's backing store. It is how a session (or an agent) routes streamed data to the right node: fragments dispatched by id land in the node the map holds under that id.