API
4.5.1
For C++ developers
|
Public Member Functions | |
virtual | ~Socket () |
Socket< T > * | clone () const override |
Create a dynamically-allocated copy. More... | |
bool | isConnected () const override |
Is the Socket connected to object(s) of type T? More... | |
const Object & | getConnecteeAsObject (int index=-1) const override |
Return a const reference to the Object connected to this Socket. More... | |
const T & | getConnectee (int index=-1) const |
Return a const reference to the object connected to this Socket. More... | |
bool | canConnectTo (const Object &object) const override |
Returns true if the socket can connect to the object (i.e. More... | |
void | connect (const Object &object) override |
Connect this Socket to the provided connectee object. More... | |
void | findAndConnect (const ComponentPath &connectee) override |
Find a component using a partial path or component name of the correct type anywhere in the model (using Component::findComponent()) and connect to that component. More... | |
void | finalizeConnection (const Component &root) override |
Connect this Socket given its connectee path property. More... | |
void | disconnect () override |
Clear references to connectees. More... | |
std::string | getConnecteeTypeName () const override |
Derived classes must satisfy this Interface. More... | |
SimTK_DOWNCAST (Socket, AbstractSocket) | |
Public Member Functions inherited from OpenSim::AbstractSocket | |
virtual | ~AbstractSocket () |
const std::string & | getName () const |
SimTK::Stage | getConnectAtStage () const |
Get the system Stage when the connection should be made. More... | |
bool | isListSocket () const |
Can this Socket have more than one connectee? More... | |
unsigned | getNumConnectees () const |
The number of slots to fill in order to satisfy this socket. More... | |
void | findAndConnect (const std::string &connectee) |
Same as findAndConnect(const ComponentPath&), but using a string argument. More... | |
void | setConnecteePath (const std::string &path, int index=-1) |
Set the connectee path. More... | |
const std::string & | getConnecteePath (int index=-1) const |
Get the connectee path. More... | |
void | appendConnecteePath (const std::string &path) |
Append a connectee path to this socket. More... | |
void | assignConnecteePath (const std::string &path) |
Assign the connectee path to this socket. More... | |
void | clearConnecteePath () |
Clear all connectee paths in the connectee path property. More... | |
bool | isConnecteePathEmpty () const |
Check to see if the connectee path property is "empty". More... | |
const Component & | getOwner () const |
Get owner component of this socket. More... | |
Public Types | |
typedef std::vector< SimTK::ReferencePtr< const T > > | ConnecteeList |
Static Public Member Functions | |
static Socket< T > * | safeDownCast (AbstractSocket *base) |
For use in python/java/MATLAB bindings. More... | |
Protected Member Functions | |
Socket (const std::string &name, const PropertyIndex &connecteePathIndex, const SimTK::Stage &connectAtStage, Component &owner) | |
Create a Socket that can only connect to Object of type T with specified name and stage at which it should be connected. More... | |
Protected Member Functions inherited from OpenSim::AbstractSocket | |
AbstractSocket (const std::string &name, const PropertyIndex &connecteePathIndex, const SimTK::Stage &connectAtStage, Component &owner) | |
Create a Socket with specified name and stage at which it should be connected. More... | |
void | setOwner (Component &o) |
Set an internal pointer to the Component that contains this Socket. More... | |
bool | hasOwner () const |
This will be false immediately after copy construction or assignment. More... | |
void | checkConnecteePathProperty () |
Check if entries of the connectee path property's value is valid (if it contains spaces, etc.); if so, print out a warning. More... | |
Protected Attributes | |
friend | Component |
So that Component can construct a Socket. More... | |
Related Functions | |
(Note that these are not member functions.) | |
Creating Sockets to other objects for your Component | |
Use these macros at the top of your component class declaration, near where you declare Property properties. | |
#define | OpenSim_DECLARE_SOCKET(cname, T, comment) |
Create a socket for this component's dependence on another component. More... | |
#define | OpenSim_DECLARE_LIST_SOCKET(cname, T, comment) |
Create a list socket for this component's dependence other components of the same type. More... | |
typedef std::vector<SimTK::ReferencePtr<const T> > OpenSim::Socket< T >::ConnecteeList |
|
inlinevirtual |
|
inlineprotected |
|
inlineoverridevirtual |
Returns true
if the socket can connect to the object (i.e.
because the object is a matching type for the socket)
Implements OpenSim::AbstractSocket.
|
inlineoverridevirtual |
Create a dynamically-allocated copy.
You must manage the memory for the returned pointer. This function exists to facilitate the use of SimTK::ClonePtr<AbstractSocket>.
Implements OpenSim::AbstractSocket.
|
inlineoverridevirtual |
Connect this Socket to the provided connectee object.
Implements OpenSim::AbstractSocket.
References OpenSim::Socket< T >::getConnecteeTypeName(), and OpenSim::AbstractSocket::getName().
|
inlineoverridevirtual |
Clear references to connectees.
The connectee path property is not affected. Calling finalizeConnection() will use the connectee path property to satisfy the socket.
Implements OpenSim::AbstractSocket.
|
overridevirtual |
Connect this Socket given its connectee path property.
Reimplemented from OpenSim::AbstractSocket.
References OpenSim::ComponentPath::getNumPathLevels(), OpenSim::ComponentPath::getSubcomponentNameAtLevel(), and OpenSim::ComponentPath::toString().
|
overridevirtual |
Find a component using a partial path or component name of the correct type anywhere in the model (using Component::findComponent()) and connect to that component.
Throws an exception If you provide only a component name and the model has multiple components with that name.
Reimplemented from OpenSim::AbstractSocket.
References OpenSim::ComponentPath::toString().
const C & OpenSim::Socket< C >::getConnectee | ( | int | index = -1 | ) | const |
Return a const reference to the object connected to this Socket.
Referenced by OpenSim::Component::getConnectee().
|
inlineoverridevirtual |
Return a const reference to the Object connected to this Socket.
Reimplemented from OpenSim::AbstractSocket.
References OpenSim::AbstractSocket::isListSocket().
|
inlineoverridevirtual |
Derived classes must satisfy this Interface.
get the type of object this socket connects to
Implements OpenSim::AbstractSocket.
Referenced by OpenSim::Socket< T >::connect().
|
inlineoverridevirtual |
Is the Socket connected to object(s) of type T?
Implements OpenSim::AbstractSocket.
Referenced by OpenSim::Component::getConnectee().
|
inlinestatic |
For use in python/java/MATLAB bindings.
OpenSim::Socket< T >::SimTK_DOWNCAST | ( | Socket< T > | , |
AbstractSocket< T > | |||
) |
|
related |
Create a list socket for this component's dependence other components of the same type.
You must specify the type of the components that can be connected to this socket. The comment should describe how the connected component (connectee) is used by this component.
Here's an example for using this macro:
T
, as shown in the example above. We currently do not support declaring sockets if T
is only forward-declared.
|
related |
Create a socket for this component's dependence on another component.
You must specify the type of the component that can be connected to this socket. The comment should describe how the connected component (connectee) is used by this component.
Here's an example for using this macro:
T
, as shown in the example above. We currently do not support declaring sockets if T
is only forward-declared.
|
protected |