An InputPort is a System resource that describes the kind of input a System accepts, on a given port.
It does not directly contain any runtime input port data; that is always contained in a Context. The actual value will be either the value of an OutputPort to which this is connected, or a fixed value set in a Context.
InputPortBase is the scalar type-independent part of an InputPort.
#include <drake/systems/framework/input_port_base.h>
Public Member Functions | |
| ~InputPortBase () override | |
| InputPortIndex | get_index () const |
| Returns the index of this input port within the owning System. More... | |
| bool | is_random () const |
| Returns true if this is a random port. More... | |
| std::optional< RandomDistribution > | get_random_type () const |
| Returns the RandomDistribution if this is a random port. More... | |
| std::unique_ptr< AbstractValue > | Allocate () const |
| Allocates a concrete object suitable for holding the value to be provided by this input port, and returns that as an AbstractValue. More... | |
| const std::string & | get_name () const |
| Get port name. More... | |
| std::string | GetFullDescription () const |
| Returns a verbose human-readable description of port. More... | |
| PortDataType | get_data_type () const |
| Returns the port data type. More... | |
| int | size () const |
| Returns the fixed size expected for a vector-valued port. More... | |
| DependencyTicket | ticket () const |
| (Advanced.) Returns the DependencyTicket for this port within the owning System. More... | |
Does not allow copy, move, or assignment | |
| InputPortBase (const InputPortBase &)=delete | |
| InputPortBase & | operator= (const InputPortBase &)=delete |
| InputPortBase (InputPortBase &&)=delete | |
| InputPortBase & | operator= (InputPortBase &&)=delete |
Public Member Functions inherited from PortBase | |
| virtual | ~PortBase () |
| const std::string & | get_name () const |
| Get port name. More... | |
| std::string | GetFullDescription () const |
| Returns a verbose human-readable description of port. More... | |
| PortDataType | get_data_type () const |
| Returns the port data type. More... | |
| int | size () const |
| Returns the fixed size expected for a vector-valued port. More... | |
| const std::optional< std::string > & | get_deprecation () const |
| When this port is deprecated, returns non-null with a (possibly empty) deprecation message; when this port is not deprecated, returns null. More... | |
| void | set_deprecation (std::optional< std::string > deprecation) |
| Sets whether this port is deprecated (and if so, the message). More... | |
| DependencyTicket | ticket () const |
| (Advanced.) Returns the DependencyTicket for this port within the owning System. More... | |
| PortBase (const PortBase &)=delete | |
| PortBase & | operator= (const PortBase &)=delete |
| PortBase (PortBase &&)=delete | |
| PortBase & | operator= (PortBase &&)=delete |
Protected Types | |
| using | EvalAbstractCallback = std::function< const AbstractValue *(const ContextBase &)> |
| Signature of a function suitable for returning the cached value of a particular input port. More... | |
Protected Member Functions | |
| InputPortBase (internal::SystemMessageInterface *owning_system, internal::SystemId owning_system_id, std::string name, InputPortIndex index, DependencyTicket ticket, PortDataType data_type, int size, const std::optional< RandomDistribution > &random_type, EvalAbstractCallback eval, ValueProducer::AllocateCallback alloc) | |
| (Internal use only) Provides derived classes the ability to set the base class members at construction. More... | |
| const AbstractValue & | DoEvalRequired (const ContextBase &context) const |
| Evaluate this port; throws an exception if the port is not connected. More... | |
| const AbstractValue * | DoEvalOptional (const ContextBase &context) const |
| Evaluate this port; returns nullptr if the port is not connected. More... | |
| void | ThrowRequiredMissing () const |
| Throws an exception that this port is not connected, but was expected to be connected (i.e., an Eval caller expected that it was always connected). More... | |
Protected Member Functions inherited from PortBase | |
| PortBase (const char *kind_string, internal::SystemMessageInterface *owning_system, internal::SystemId owning_system_id, std::string name, int index, DependencyTicket ticket, PortDataType data_type, int size) | |
| Provides derived classes the ability to set the base class members at construction. More... | |
| int | get_int_index () const |
| Returns the index of this port within the owning System (i.e., an InputPortIndex or OutputPortIndex, but as a bare integer). More... | |
| const internal::SystemMessageInterface & | get_system_interface () const |
| Returns a reference to the system that owns this port. More... | |
| internal::SystemMessageInterface & | get_mutable_system_interface () |
| Returns get_system_interface(), but without the const. More... | |
| void | ValidateSystemId (internal::SystemId id) const |
| (Internal use only) Checks whether the given id (nominally obtained from a Context passed to this port) was created for the system that owns this port. More... | |
| void | ThrowValidateContextMismatch () const |
| (Internal use only) Throws std::exception with a message that the sanity check(s) related to ValidateContext have failed. More... | |
| template<typename ValueType > | |
| const ValueType & | PortEvalCast (const AbstractValue &abstract) const |
| Pull a value of a given type from an abstract value or issue a nice message if the type is not correct. More... | |
| template<typename ValueType , typename T > | |
| const ValueType & | PortEvalCast (const BasicVector< T > &basic) const |
| Downcast a basic vector to a more specific subclass, or else issue a nice message if the type is not correct. More... | |
| template<typename ValueType > | |
| const ValueType & | ThrowBadCast (const AbstractValue &abstract) const |
| Reports that the user provided a bad ValueType argument to Eval. More... | |
| template<typename ValueType , typename T > | |
| const ValueType & | ThrowBadCast (const BasicVector< T > &basic) const |
| Reports that the user provided a bad ValueType argument to Eval. More... | |
| void | ThrowBadCast (const std::string &value_typename, const std::string &eval_typename) const |
| Reports that the user provided a bad ValueType argument to Eval. More... | |
|
protected |
Signature of a function suitable for returning the cached value of a particular input port.
Will return nullptr if the port is not connected.
|
delete |
|
delete |
|
override |
|
protected |
(Internal use only) Provides derived classes the ability to set the base class members at construction.
| owning_system | The System that owns this input port. |
| owning_system_id | The ID of owning_system. |
| name | A name for the port. Input port names should be non-empty and unique within a single System. |
| index | The index to be assigned to this InputPort. |
| ticket | The DependencyTicket to be assigned to this InputPort. |
| data_type | Whether the port described is vector- or abstract-valued. |
| size | If the port described is vector-valued, the number of elements. Ignored for abstract-valued ports. |
| random_type | Input ports may optionally be labeled as random, if the port is intended to model a random-source "noise" or "disturbance" input. |
| std::unique_ptr<AbstractValue> Allocate | ( | ) | const |
Allocates a concrete object suitable for holding the value to be provided by this input port, and returns that as an AbstractValue.
The returned object will never be null.
|
protected |
Evaluate this port; returns nullptr if the port is not connected.
|
protected |
Evaluate this port; throws an exception if the port is not connected.
| PortDataType get_data_type |
Returns the port data type.
| InputPortIndex get_index | ( | ) | const |
Returns the index of this input port within the owning System.
For a Diagram, this will be the index within the Diagram, not the index within a LeafSystem whose input port was exported.
| const std::string& get_name |
Get port name.
| std::optional<RandomDistribution> get_random_type | ( | ) | const |
Returns the RandomDistribution if this is a random port.
| std::string GetFullDescription |
Returns a verbose human-readable description of port.
This is useful for error messages or debugging.
| bool is_random | ( | ) | const |
Returns true if this is a random port.
|
delete |
|
delete |
| int size |
Returns the fixed size expected for a vector-valued port.
Not meaningful for abstract-valued ports.
|
protected |
Throws an exception that this port is not connected, but was expected to be connected (i.e., an Eval caller expected that it was always connected).
| DependencyTicket ticket |
(Advanced.) Returns the DependencyTicket for this port within the owning System.