Represents a data path (arbitrary relation or data movement) between two Components in the topology.
More...
|
| DataPath (Component *_source, Component *_target, sys_sage::DataPathOrientation::type _oriented, sys_sage::DataPathType::type _dp_type=sys_sage::DataPathType::None) |
| DataPath constructor.
|
|
| DataPath (Component *_source, Component *_target, sys_sage::DataPathOrientation::type _oriented, double _bw, double _latency) |
| DataPath constructor. DataPath type is set to DataPathType::None.
|
|
| DataPath (Component *_source, Component *_target, sys_sage::DataPathOrientation::type _oriented, sys_sage::DataPathType::type _dp_type, double _bw, double _latency) |
| DataPath constructor.
|
|
Component * | GetSource () const |
| Retrieves the source Component.
|
|
Component * | GetTarget () const |
| Retrieves the target Component.
|
|
double | GetBandwidth () const |
| Retrieves the bandwidth from the source to the target.
|
|
void | SetBandwidth (double _bandwidth) |
| Sets the bandwidth from the source to the target.
|
|
double | GetLatency () const |
|
void | SetLatency (double _latency) |
| Sets the data load latency from the source to the target.
|
|
int | UpdateSource (Component *_new_source) |
| Updates the source of the DataPath. The datapath is removed from the outgoing/incoming vectors of the old source and added to the vectors of the new source.
|
|
int | UpdateTarget (Component *_new_target) |
| Updates the target of the DataPath. The datapath is removed from the outgoing/incoming vectors of the old target and added to the vectors of the new target.
|
|
int | GetDataPathType () const |
|
int | GetOrientation () const |
| Retrieves the orientation of the DataPath (DataPathOrientation::Oriented or DataPathOrientation::Bidirectional).
|
|
void | Print () const override |
| Prints basic information about the Data Path to stdout. Prints componentType and Id of the source and target Components, the bandwidth, load latency, and the attributes. For each attribute, the name and value are printed; the value is only retyped to uint64_t (so will print nonsensical values for other data types).
|
|
void | Delete () override |
| Deletes and de-allocates the DataPath pointer from the list (std::vector) of outgoing and incoming DataPaths of source and target Components.
|
|
| Relation (const std::vector< Component * > &components, int _id=0, bool _ordered=true) |
| Construct a new Relation object.
|
|
void | SetId (int _id) |
| Sets the id of the relationship.
|
|
int | GetId () const |
| Gets the id of the relationship.
|
|
RelationType::type | GetType () const |
| Get the type of the relation.
|
|
std::string | GetTypeStr () const |
| Return a human-readable name of the relation type.
|
|
bool | IsOrdered () const |
| Check if this relation treats component order as meaningful.
|
|
bool | ContainsComponent (Component *c) const |
| Check whether the given component is part of this relation.
|
|
Component * | GetComponent (int index) const |
| Get the component at a specific position.
|
|
const std::vector< Component * > & | GetComponents () const |
| Access the list of components.
|
|
void | AddComponent (Component *c) |
| Add a new component to the relation.
|
|
int | UpdateComponent (int index, Component *_new_component) |
| Replace a component at the given index.
|
|
int | UpdateComponent (Component *_old_component, Component *_new_component) |
| Replace the first occurrence of a given component.
|
|
| ~Relation ()=default |
| Destructor for the Relation class.
|
|
Represents a data path (arbitrary relation or data movement) between two Components in the topology.
DataPaths form a data-path graph, which is orthogonal to the Component Tree. Each Component contains references to all DataPaths going to or from it, in addition to its parent and children in the Component Tree. This enables navigation between Components and access to data stored in Components or DataPaths.
DataPaths can be oriented (directed) or bidirectional, and can carry additional information such as bandwidth, latency, and user-defined types. They are essential for modeling memory hierarchies, interconnects, and other logical or physical data flows in heterogeneous systems.
void sys_sage::DataPath::Print |
( |
| ) |
const |
|
overridevirtual |
Prints basic information about the Data Path to stdout. Prints componentType and Id of the source and target Components, the bandwidth, load latency, and the attributes. For each attribute, the name and value are printed; the value is only retyped to uint64_t (so will print nonsensical values for other data types).
Reimplemented from sys_sage::Relation.