pub struct CuConfig {
pub graph: StableDiGraph<Node, Cnx, NodeId>,
pub monitor: Option<MonitorConfig>,
pub logging: Option<LoggingConfig>,
}Expand description
CuConfig is the programmatic representation of the configuration graph. It is a directed graph where nodes are tasks and edges are connections between tasks.
Fields§
§graph: StableDiGraph<Node, Cnx, NodeId>§monitor: Option<MonitorConfig>§logging: Option<LoggingConfig>Implementations§
Source§impl CuConfig
The implementation has a lot of convenience methods to manipulate
the configuration to give some flexibility into programmatically creating the configuration.
impl CuConfig
The implementation has a lot of convenience methods to manipulate the configuration to give some flexibility into programmatically creating the configuration.
Sourcepub fn get_node_mut(&mut self, node_id: NodeId) -> Option<&mut Node>
pub fn get_node_mut(&mut self, node_id: NodeId) -> Option<&mut Node>
Get the node with the given id mutably.
Sourcepub fn get_node_output_msg_type(&self, node_id: &str) -> Option<String>
pub fn get_node_output_msg_type(&self, node_id: &str) -> Option<String>
this is more like infer from the connections of this node.
Sourcepub fn get_node_input_msg_type(&self, node_id: &str) -> Option<String>
pub fn get_node_input_msg_type(&self, node_id: &str) -> Option<String>
this is more like infer from the connections of this node.
Sourcepub fn get_src_edges(&self, node_id: NodeId) -> Vec<usize>
pub fn get_src_edges(&self, node_id: NodeId) -> Vec<usize>
Get the list of edges that are connected to the given node as a source.
Sourcepub fn get_dst_edges(&self, node_id: NodeId) -> Vec<usize>
pub fn get_dst_edges(&self, node_id: NodeId) -> Vec<usize>
Get the list of edges that are connected to the given node as a destination.
pub fn get_edge_weight(&self, index: usize) -> Option<Cnx>
Sourcepub fn get_all_nodes(&self) -> Vec<(NodeIndex, &Node)>
pub fn get_all_nodes(&self) -> Vec<(NodeIndex, &Node)>
Convenience method to get all nodes in the configuration graph.
Sourcepub fn connect_ext(
&mut self,
source: NodeId,
target: NodeId,
msg_type: &str,
batch: Option<u32>,
store: Option<bool>,
)
pub fn connect_ext( &mut self, source: NodeId, target: NodeId, msg_type: &str, batch: Option<u32>, store: Option<bool>, )
Adds an edge between two nodes/tasks in the configuration graph. msg_type is the type of message exchanged between the two nodes/tasks. batch is the number of messages to batch before sending the buffer. store tells Copper if it needs to log the messages.
Sourcepub fn connect(&mut self, source: NodeId, target: NodeId, msg_type: &str)
pub fn connect(&mut self, source: NodeId, target: NodeId, msg_type: &str)
Adds an edge between two nodes/tasks in the configuration graph. msg_type is the type of message exchanged between the two nodes/tasks.
pub fn serialize_ron(&self) -> String
pub fn deserialize_ron(ron: &str) -> Self
pub fn get_all_instances_configs(&self) -> Vec<Option<&ComponentConfig>>
pub fn get_monitor_config(&self) -> Option<&MonitorConfig>
Sourcepub fn validate_logging_config(&self) -> CuResult<()>
pub fn validate_logging_config(&self) -> CuResult<()>
Validate the logging configuration to ensure section pre-allocation sizes do not exceed slab sizes. This method is wrapper around LoggingConfig::validate
Trait Implementations§
Source§impl<'de> Deserialize<'de> for CuConfig
impl<'de> Deserialize<'de> for CuConfig
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
This is a custom serialization to make this implementation independent of petgraph.