Drake
Drake C++ Documentation
LeafOutputPort< T > Class Template Referencefinal

Detailed Description

template<typename T>
class drake::systems::LeafOutputPort< T >

(Advanced.) Implements an output port whose value is managed by a cache entry in the same LeafSystem as the port.

This is intended for internal use in implementing the DeclareOutputPort() variants in LeafSystem.

Template Parameters
TThe scalar type, which must be one of the default scalars.

#include <drake/systems/framework/leaf_output_port.h>

Public Types

using AllocCallback = ValueProducer::AllocateCallback
 Signature of a function suitable for allocating an object that can hold a value of a particular output port. More...
 
using CalcCallback = std::function< void(const Context< T > &, AbstractValue *)>
 Signature of a function suitable for calculating a value of a particular output port, given a place to put the value. More...
 
using CalcVectorCallback = std::function< void(const Context< T > &, BasicVector< T > *)>
 Signature of a function suitable for calculating a value of a particular vector-valued output port, given a place to put the value. More...
 

Public Member Functions

 ~LeafOutputPort () final=default
 
const CacheEntrycache_entry () const
 Returns the cache entry associated with this output port. More...
 
void disable_caching_by_default ()
 (Debugging) Specifies that caching should be disabled for this output port when a Context is first allocated. More...
 
Does not allow copy, move, or assignment
 LeafOutputPort (const LeafOutputPort &)=delete
 
LeafOutputPortoperator= (const LeafOutputPort &)=delete
 
 LeafOutputPort (LeafOutputPort &&)=delete
 
LeafOutputPortoperator= (LeafOutputPort &&)=delete
 
- Public Member Functions inherited from OutputPort< T >
 ~OutputPort () override=default
 
template<typename ValueType = VectorX<T>>
const ValueType & Eval (const Context< T > &context) const
 Returns a reference to the up-to-date value of this output port contained in the given Context. More...
 
std::unique_ptr< AbstractValueAllocate () const
 Allocates a concrete object suitable for holding the value to be exposed by this output port, and returns that as an AbstractValue. More...
 
void Calc (const Context< T > &context, AbstractValue *value) const
 Unconditionally computes the value of this output port with respect to the given context, into an already-allocated AbstractValue object whose concrete type must be exactly the same as the type returned by this port's allocator. More...
 
const System< T > & get_system () const
 Returns a reference to the System that owns this output port. More...
 
const std::string & get_name () const
 Get port name. More...
 
std::string GetFullDescription () const
 Returns a verbose human-readable description of port. More...
 
OutputPortIndex get_index () const
 Returns the index of this output port within the owning System. 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...
 
 OutputPort (const OutputPort &)=delete
 
OutputPortoperator= (const OutputPort &)=delete
 
 OutputPort (OutputPort &&)=delete
 
OutputPortoperator= (OutputPort &&)=delete
 
- Public Member Functions inherited from OutputPortBase
 ~OutputPortBase () override
 
OutputPortIndex get_index () const
 Returns the index of this output port within the owning System. 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...
 
 OutputPortBase (const OutputPortBase &)=delete
 
OutputPortBaseoperator= (const OutputPortBase &)=delete
 
 OutputPortBase (OutputPortBase &&)=delete
 
OutputPortBaseoperator= (OutputPortBase &&)=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
 
PortBaseoperator= (const PortBase &)=delete
 
 PortBase (PortBase &&)=delete
 
PortBaseoperator= (PortBase &&)=delete
 

Friends

class internal::FrameworkFactory
 

Additional Inherited Members

- Protected Member Functions inherited from OutputPort< T >
 OutputPort (const System< T > *system, internal::SystemMessageInterface *system_interface, internal::SystemId system_id, std::string name, OutputPortIndex index, DependencyTicket ticket, PortDataType data_type, int size)
 Provides derived classes the ability to set the base class members at construction. More...
 
- Protected Member Functions inherited from OutputPortBase
 OutputPortBase (internal::SystemMessageInterface *owning_system, internal::SystemId owning_system_id, std::string name, OutputPortIndex index, DependencyTicket ticket, PortDataType data_type, int size)
 Provides derived classes the ability to set the base class members at construction. 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...
 
- Static Protected Member Functions inherited from OutputPort< T >
static void ThrowIfInvalidPortValueType (const OutputPort< T > &port, const Context< T > &context, const AbstractValue &proposed_value)
 Static method allows DiagramOutputPort to call this recursively. More...
 

Member Typedef Documentation

◆ AllocCallback

Signature of a function suitable for allocating an object that can hold a value of a particular output port.

The result is returned as an AbstractValue even if this is a vector-valued port.

◆ CalcCallback

using CalcCallback = std::function<void(const Context<T>&, AbstractValue*)>

Signature of a function suitable for calculating a value of a particular output port, given a place to put the value.

◆ CalcVectorCallback

using CalcVectorCallback = std::function<void(const Context<T>&, BasicVector<T>*)>

Signature of a function suitable for calculating a value of a particular vector-valued output port, given a place to put the value.

Constructor & Destructor Documentation

◆ LeafOutputPort() [1/2]

LeafOutputPort ( const LeafOutputPort< T > &  )
delete

◆ LeafOutputPort() [2/2]

LeafOutputPort ( LeafOutputPort< T > &&  )
delete

◆ ~LeafOutputPort()

~LeafOutputPort ( )
finaldefault

Member Function Documentation

◆ cache_entry()

const CacheEntry& cache_entry ( ) const

Returns the cache entry associated with this output port.

◆ disable_caching_by_default()

void disable_caching_by_default ( )

(Debugging) Specifies that caching should be disabled for this output port when a Context is first allocated.

This is useful if you have observed different behavior with caching on or off and would like to determine if the problem is caused by this port.

See also
CacheEntry::disable_caching_by_default()

◆ operator=() [1/2]

LeafOutputPort& operator= ( const LeafOutputPort< T > &  )
delete

◆ operator=() [2/2]

LeafOutputPort& operator= ( LeafOutputPort< T > &&  )
delete

Friends And Related Function Documentation

◆ internal::FrameworkFactory

friend class internal::FrameworkFactory
friend

The documentation for this class was generated from the following file: