A composite actor imposes the use of dynamic PthalesReceivers
strips header information and computes the its iteration automatically.
A PthalesCompositeActor can contain actors from different model (as SDF),
but the port must be a PthalesIOPort, because of the ArrayOL parameters.

Constructor Detail

PthalesDynamicCompositeActor

Construct a PthalesDynamicCompositeActor in the default workspace with no
container and an empty string as its name. Add the actor to the
workspace directory. You should set the local director or
executive director before attempting to send data to the actor or
to execute it. Increment the version number of the workspace.

PthalesDynamicCompositeActor

Construct a PthalesDynamicCompositeActor with a name and a container.
The container argument must not be null, or a
NullPointerException will be thrown. This actor will use the
workspace of the container for synchronization and version counts.
If the name argument is null, then the name is set to the empty string.
Increment the version of the workspace. This actor will have no
local director initially, and its executive director will be simply
the director of the container.

PthalesDynamicCompositeActor

Construct a PthalesDynamicCompositeActor in the specified workspace with
no container and an empty string as a name. You can then change
the name with setName(). If the workspace argument is null, then
use the default workspace. You should set the local director or
executive director before attempting to send data to the actor
or to execute it. Add the actor to the workspace directory.
Increment the version number of the workspace.

createReceivers

Create receivers for each port. If the port is an
input port, then receivers are created for outside
connections. If it is an output port, then receivers
are created for inside connections. This method replaces
any pre-existing receivers, so any data they contain
will be lost.

iterate

Invoke a specified number of iterations of the actor. An
iteration is equivalent to invoking prefire(), fire(), and
postfire(), in that order. In an iteration, if prefire()
returns true, then fire() will be called once, followed by
postfire(). Otherwise, if prefire() returns false, fire()
and postfire() are not invoked, and this method returns
NOT_READY. If postfire() returns false, then no more
iterations are invoked, and this method returns STOP_ITERATING.
Otherwise, it returns COMPLETED. If stop() is called during
this iteration, then cease iterating and return STOP_ITERATING.

This base class method actually invokes prefire(), fire(),
and postfire(), as described above, but a derived class
may override the method to execute more efficient code.

prefire

If this actor is opaque, invoke the prefire() method of the local
director. This method returns true if the actor is ready to fire
(determined by the prefire() method of the director).
It is read-synchronized on the workspace.