A PortBase is base class for System ports; users will typically use the InputPort<T> or OutputPort<T> types, not this base class.
#include <drake/systems/framework/port_base.h>
Public Member Functions | |
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... | |
Does not allow copy, move, or assignment | |
PortBase (const PortBase &)=delete | |
PortBase & | operator= (const PortBase &)=delete |
PortBase (PortBase &&)=delete | |
PortBase & | operator= (PortBase &&)=delete |
Protected Member Functions | |
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... | |
Friends | |
class | internal::PortBaseAttorney |
|
virtual |
|
protected |
Provides derived classes the ability to set the base class members at construction.
kind_string | Either "Input" or "Output", depending on the kind of subclass. |
owning_system | The System that owns this port. |
owning_system_id | The ID of owning_system. |
name | A name for the port. Port names should be non-empty and unique within a single System. |
index | The index to be assigned to this port. Input ports and output ports each have their own pool of indices (InputPortIndex and OutputPortIndex); this is just that TypeSafeIndex passed as a bare int. |
ticket | The DependencyTicket to be assigned to this port. |
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. |
PortDataType get_data_type | ( | ) | const |
Returns the port data type.
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.
|
protected |
Returns the index of this port within the owning System (i.e., an InputPortIndex or OutputPortIndex, but as a bare integer).
For a Diagram, this will be the index within the Diagram, not the index within the LeafSystem whose output port was forwarded.
|
protected |
Returns get_system_interface(), but without the const.
const std::string& get_name | ( | ) | const |
Get port name.
|
protected |
Returns a reference to the system that owns this port.
Note that for a diagram port this will be the diagram, not the leaf system whose port was exported.
std::string GetFullDescription | ( | ) | const |
Returns a verbose human-readable description of port.
This is useful for error messages or debugging.
|
protected |
Pull a value of a given type from an abstract value or issue a nice message if the type is not correct.
|
protected |
Downcast a basic vector to a more specific subclass, or else issue a nice message if the type is not correct.
void set_deprecation | ( | std::optional< std::string > | deprecation | ) |
Sets whether this port is deprecated (and if so, the message).
int size | ( | ) | const |
Returns the fixed size expected for a vector-valued port.
Not meaningful for abstract-valued ports.
|
protected |
Reports that the user provided a bad ValueType argument to Eval.
|
protected |
Reports that the user provided a bad ValueType argument to Eval.
|
protected |
Reports that the user provided a bad ValueType argument to Eval.
The value_typename is the type of the port's current value; the eval_typename is the type the user asked for.
|
protected |
(Internal use only) Throws std::exception with a message that the sanity check(s) related to ValidateContext have failed.
DependencyTicket ticket | ( | ) | const |
(Advanced.) Returns the DependencyTicket for this port within the owning System.
|
protected |
(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.
This is similar in spirit to SystemBase::ValidateContext, but ports cannot use SystemBase.
|
friend |