Represents the façade towards the logical (sub)system.
Represents the façade towards the logical (sub)system. Responsibilities
Objects of this class are responsible for the configuration of the actor-based platform.
Objects of this class are responsible for the configuration of the actor-based platform. The façade interface allows the creation of a platform façade.
Defines a behavior for managing actuators.
Defines a behavior for managing actuators.
This is the top-level actor for a given aggregate application in the current subsystem.
This is the top-level actor for a given aggregate application in the current subsystem. Responsibilities
An autonomous scheduler decides how to schedule by applying some ExecStrategy {{strategy}}.
An autonomous scheduler decides how to schedule by applying some ExecStrategy {{strategy}}. Notes:
Base trait for all device actors.
Base trait for all device actors.
Defines a behavior for managing neighbours' info.
Defines a behavior for managing neighbours' info.
Represents the management façade for a single device.
Represents the management façade for a single device. Responsibilities
Name of a capability, including
Name of a capability, including
The input of a computation round in a node Bounded as of Context interface
Behavior for an actor that allows code to be shipped to some recipient actors.
Behavior for an actor that allows code to be shipped to some recipient actors.
Defines a "full" device that, in addition to sensing (SensingBehavior), it also performs a computation, locally, using an {{aggregateExecutor}}.
Defines a "full" device that, in addition to sensing (SensingBehavior), it also performs a computation, locally, using an {{aggregateExecutor}}.
A field-calculus "behaviour" inherits from this trait.
A field-calculus "behaviour" inherits from this trait. Differences wrt the paper version are: - foldhood is given a "universal quantification" semantics - neighbour exposes whether we are in one such quantification - mid is so foundational that we put it here
A consequence is that we do not have field types, only locals: so we integrate at best with Scala
A generic "context" affecting device-local execution of a ScaFi program.
A generic "context" affecting device-local execution of a ScaFi program.
It extends a ComputationDeviceActor with a DynamicDeviceLifecycleBehavior.
It extends a ComputationDeviceActor with a DynamicDeviceLifecycleBehavior. In other words, the computation device has a (possibly dynamic) lifecycle that depends on the current execution scope (see ExecScope).
Defines a device lifecycle behavior that depends on the field {{execScope}.
Defines a device lifecycle behavior that depends on the field {{execScope}. The characteristic is that the behavior is dynamic, namely, can accomodate change to its execution scope. (See ExecScope)
A computation round, as an I/O function
A computation round, as an I/O function
The output of a computation round in a node Bounded to have at least a root element, as of Export interface
It implements the whole operational semantics.
It implements the whole operational semantics.
A generic "export", i.e., a coordination message to be emitted.
A generic "export", i.e., a coordination message to be emitted.
A generic scheduler.
A generic scheduler. When it decides or someone decides its time to schedule (reception of a GoOn msg), it determines the next device to run ({{nextToRun: ()=>Option[ID]}}) and, if any, determines the destination mailbox ({{recipientForExecution: ID=>ActorRef}}) and sends to it a schedule tick (GoOn msg).
The unique identifier of a node
The unique identifier of a node
Behavior that should support the retrieval of missing class dependencies.
Behavior that should support the retrieval of missing class dependencies. - Missing classes are identified through a SystemMsgClassNotFound msg which is produced by the CustomAkkaSerializer when deserialization fails due to ClassNotFoundException, and replaces the original message - Then, requests for dependencies are carried out via MsgRequestClass messages - Finally, responses for dependency requests consist in MsgWithClass or MsgWithClasses messages
This behavior uses: - The CodeMobilityExtension to dynamically access the classloader for loading classes at runtime - The LoadClassBytes utility for getting the bytes of a class
This structure packages together info about a neighbor.
This structure packages together info about a neighbor.
Extends a ComputationDeviceActor with an ObservableActorBehavior.
Extends a ComputationDeviceActor with an ObservableActorBehavior. In other wards, it defines a computation device actors that is also observable, that is, can handle a set of observers and can notify them when certain events occur. In particular, observers are notified:
a space that used quad tree index to compute neighbour
a space that used quad tree index to compute neighbour
the type of node
Defines the query management behavior of a "queryable" device, i.e., a device that can be asked/queried for information.
Defines the query management behavior of a "queryable" device, i.e., a device that can be asked/queried for information.
Defines the basic sensing behavior of a device.
Defines the basic sensing behavior of a device. It might be used to represent a "minimal" device that performs no computation locally.
Defines a behavior for managing sensors.
Defines a behavior for managing sensors.
Behavior extension for a computation device that allows its aggregate computation to be updated.
Behavior extension for a computation device that allows its aggregate computation to be updated.
Template method for extending the parser in specialized platform components.
Template method for extending the parser in specialized platform components.
(Since version ) see corresponding Javadoc for more information.