
CompositeActor |
ptolemy.actor.CompositeActor |
A CompositeActor is an aggregation of actors. It may have a
local director, which is an attribute of class Director that
is responsible for executing the contained actors.
At the top level of a hierarchy, a composite actor (the toplevel
CompositeActor of the topology) will normally exist with a local Director,
and no container. A composite actor at a lower level
of the hierarchy may also have a local director. A composite actor
with a local director is opaque, and serves the role of the
wormhole from Ptolemy Classic. Its ports are opaque, but it can
contain actors and relations. The toplevel composite actor is also
associated with a Manager object that is responsible for managing
any execution within the topology at a high level.
The executive director of a composite actor is the local director of
the actor's container. The toplevel composite actor has no executive
director, and getExecutiveDirector will return null. For transparent
composite actors, the executive director and the local director will be the
same.
The getDirector() method returns the local director if there is one.
Otherwise, it returns the executive director of the CompositeActor,
if there is one. Whatever it returns is called (simply) the
director of the composite (it may be local or executive). This
Director is responsible for the execution of all the actors contained
within the composite actor.
A composite actor must have an executive director in order to communicate with
the hierarchy around it. In fact, it cannot even receive data in its
input ports without an executive director, since the executive director
is responsible for supplying the receivers to the ports.
The toplevel composite actor has no executive director and cannot have
ports that transmit data, but it can still be executed as long as it has a
local director. If the getDirector() method returns null, then the
composite is not executable.
When a composite actor has both a director and an executive director, then
the model of computation implemented by the director need not be the
same as the model of computation implemented by the executive director.
This is the source of the hierarchical heterogeneity in Ptolemy II.
Multiple models of computation can be cleanly nested.
The ports of a CompositeActor are constrained to be IOPorts, the
relations to be IORelations, and the actors to be instances of
ComponentEntity that implement the Actor interface. Derived classes
may impose further constraints by overriding newPort(), _addPort(),
newRelation(), _addRelation(), and _addEntity().
Author(s): Mudit Goel, Edward A. Lee, Lukito Muliadi, Steve Neuendorffer
Version:$Id: CompositeActor.java,v 1.200 2006/05/02 00:50:39 eal Exp $
Pt.Proposed Rating:Green (cxh)
Pt.Accepted Rating:Yellow (neuendor)