Enum simics_api_sys::connector_direction_t

source ·
#[repr(u32)]
pub enum connector_direction_t { Sim_Connector_Direction_Up = 0, Sim_Connector_Direction_Down = 1, Sim_Connector_Direction_Any = 2, }
Expand description
connector_interface_t

The connector interface must be implemented by connector objects. The interface describes the connector and how it can be connected to other connectors. A connector is used for connecting component objects. The connector is just a proxy for the connection, the connector uses the component_connector interface in the components to setup the connection.

The type function returns the connector type as a string. Two connectors can only be connected if the type is identical.

A hotpluggable connector returns true when calling the hotpluggable function, otherwise false. A hotpluggable connector can be connected before or after the component is instantiated, an non hotpluggable connector must be connected before the component is instantiated.

The required function returns true if the connector must be connected before instantiated, otherwise false.

A connector can be connected to many connectors, but it is only supported if the multi function return true. It is not recommended that a connector support multi connections. A component can instead dynamically create connectors when needed.

A connector has a direction; up, down or any. The direction decides in which order the connectors in a component tree are connected and the structure of the tree.

Connections are setup in two steps. The first step is to add the connection, which is done using the add_destination function. Adding a connection can fail for several reasons and it is implementation dependent how the connection can fail. A connection can for instance fail because the destination object requires something that the source component did not pass when checking the connection. Just adding a connection does not mean that the components actually connect. The components have to save the data given with the add_destination function. The actual setup of the connection is made in the second step when the update function is called, which finalizes the connection.

The add_destination and remove_destination functions sets the state of the connection. It is first when the update function is called when the connection is finalized. Both add_destination and remove_destination returns true if the call was successful otherwise they return false.

Parameters to the add_destination function are the own object obj and the destination object

dst_obj. The destination object must be a port object and it must implement the connector interface.

The update function is called when the component should update its current connection status. The status of the connection has previously been set using the add_destination or/and remove_destination functions.

The destination function returns a list of port objects that the its connected to. The destination function returns the state of the connection not the finalized state, i.e. the state of the connection before update functional call.

The check, connect, and disconnect functions initiates a connection setup via the connector object. The connector will forward the setup to the components affected by the connection via the component_connector interface.

The deletion_requested function is called after disconnecting components. A dynamic connector might want to return True in order to be deleted just after the disconnection.

Global Context for all methods.

Variants§

§

Sim_Connector_Direction_Up = 0

§

Sim_Connector_Direction_Down = 1

§

Sim_Connector_Direction_Any = 2

Trait Implementations§

source§

impl Clone for connector_direction_t

source§

fn clone(&self) -> connector_direction_t

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for connector_direction_t

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for connector_direction_t

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for connector_direction_t

source§

fn cmp(&self, other: &connector_direction_t) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for connector_direction_t

source§

fn eq(&self, other: &connector_direction_t) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for connector_direction_t

source§

fn partial_cmp(&self, other: &connector_direction_t) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Copy for connector_direction_t

source§

impl Eq for connector_direction_t

source§

impl StructuralPartialEq for connector_direction_t

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.