Expand description
A Conductor is a dynamically changing group of Cells.
A Conductor can be managed:
- externally, via an
AppInterfaceApi
- from within a
Cell
, viaCellConductorApi
In normal use cases, a single Holochain user runs a single Conductor in a single process. However, there’s no reason we can’t have multiple Conductors in a single process, simulating multiple users in a testing environment.
async fn async_main () {
use holochain_state::test_utils::test_db_dir;
use holochain::conductor::{Conductor, ConductorBuilder};
let env_dir = test_db_dir();
let conductor: Conductor = ConductorBuilder::new()
.test(env_dir.path(), &[])
.await
.unwrap();
// conductors are cloneable
let conductor2 = conductor.clone();
assert_eq!(conductor.list_dnas(), vec![]);
conductor.shutdown();
Modules
- A sync RwLock that uses closures to avoid deadlocks.
Structs
- A Conductor is a group of Cells
- A configurable Builder for Conductor and sometimes ConductorHandle
- A clonable thread safe read write lock designed to make it hard to create dead locks or hold long long lived locks.
Enums
- The status of an installed Cell, which captures different phases of its lifecycle
Functions
- Dump the full integration json state. Careful! This will return a lot of data.
- Dump the integration json state.
Type Definitions
- A list of Cells which failed to start, and why
- Declarative filter for CellStatus
- Cloneable reference to a Conductor