Abstract
Create a new circuit loader.
This class is CircuitLoggable, so it accepts a subsystem ID for logging.
Attach a logger to this loggable object so that messages logged with log will be send to this logger. Note that this can be called multiple times and multiple loggers can be attached to the same object. Log messages will be sent to all attached loggers.
The logger to attach to this object.
Detach a logger from this loggable object so that messages logged with log will no longer be sent to it. If the logger is not attached, nothing happens.
The logger to detach from this object.
Everything that is loggable gets a unique ID, which can help identify instances of objects in logs when many such instances exist. This ID is normally generated automatically by CircuitLoggable when it is instantiated, unless this method has been by child classes.
A unique ID among all loggable objects.
Abstract
loadTransform arbitrary data loaded from a stream or a file into a proper CircuitProject containing circuits which can be run with this engine.
The arbitrary data to transform into a circuit project.
A valid circuit project, which contains circuits that may or may not be related via SubCircuit.
Protected
logLog a message, sending it to all loggers associated with this loggable.
The log level to log the message at.
The message to log.
Optional
data: anyAny additional data to associate with the message.
Propagate all registered loggers (present and future) to the given loggable. This function will register the loggable object with the object it is being called on, establishing a parent-child relationship where all changes to the parent loggers will be propagated to the children.
The loggable object to attach all registered loggers to.
A Circuit Loggable is a log source. Messages are generated by circuit loggables using the log function and sent to CircuitLoggers registered with the given loggable. Loggables have a subsystem and an ID which they can use to uniquely identify themselves in the log output.
This abstract class creates a logging "tree" structure, where a loggable can be composed of child loggables, and when a logger is attached or detached from a loggable, the same operation is applied to all of its children. Child loggables are added via propagateLoggersTo and will be affected by calls to attachLogger and detachLogger on parent objects.