Interface IRuntimeModel
The core runtime model responsible to manage all instances of entities
It can be used to register new objects at the system, so it will be triggered
and results are persisted.
Namespace: Mars.Core.Executor
Assembly: Mars.Core.dll
Syntax
public interface IRuntimeModel : IDisposable
Properties
AllActiveLayers
The set of active layers that have a pre-tick and post-tick method.
Declaration
ISet<ISteppedActiveLayer> AllActiveLayers { get; }
Property Value
Type | Description |
---|---|
ISet<ISteppedActiveLayer> |
Context
Gets the simulation context with all time information's about the simulation
Declaration
ISimulationContext Context { get; set; }
Property Value
Type | Description |
---|---|
ISimulationContext |
ExecutionAgentTypeGroups
The set of all agent instances in this execution environment
grouped by the agent type description
Declaration
IDictionary<AgentType, IDictionary<Guid, IAgent>> ExecutionAgentTypeGroups { get; }
Property Value
Type | Description |
---|---|
IDictionary<AgentType, IDictionary<Guid, IAgent>> |
ExecutionGroups
The set of all agent instances in this environment
separated by the the tick frequency.
Declaration
IDictionary<int, ConcurrentSet<ITickClient>> ExecutionGroups { get; }
Property Value
Type | Description |
---|---|
IDictionary<System.Int32, ConcurrentSet<ITickClient>> |
Layers
All layer instances of the model mapping from the type description 1:1 to the instance.
Declaration
TwoWayDictionary<LayerType, ILayer> Layers { get; }
Property Value
Type | Description |
---|---|
TwoWayDictionary<LayerType, ILayer> |
RegisterAgent
Gets the registration handle to load an at the runtime system to get be triggered by
them.
The runtime system uses the passed executionInterval to associated the object in a specific execution
group.
Otherwise the type mapping of this object will be used or 1 as default value (triggered in each tick).
Declaration
RegisterAgent RegisterAgent { get; }
Property Value
Type | Description |
---|---|
RegisterAgent |
UnregisterAgent
Gets the de-registration handle to unload a from the runtime system associated to the
passed
The runtime system uses the executionInterval to deregister the tick object from the execution groups
Declaration
UnregisterAgent UnregisterAgent { get; }
Property Value
Type | Description |
---|---|
UnregisterAgent |
Methods
AddActiveLayer(ISteppedActiveLayer, LayerType)
Adds an active layer instance to the runtime model which is capable to run ticks
Declaration
bool AddActiveLayer(ISteppedActiveLayer layer, LayerType type)
Parameters
Type | Name | Description |
---|---|---|
ISteppedActiveLayer | layer | The layer instance to register for execution |
LayerType | type | The corresponding type description |
Returns
Type | Description |
---|---|
System.Boolean |
AddLayer(ILayer, LayerType)
Adds a layer instance to the runtime model
Declaration
bool AddLayer(ILayer layer, LayerType type)
Parameters
Type | Name | Description |
---|---|---|
ILayer | layer | The layer instance to register |
LayerType | type | The corresponding type description |
Returns
Type | Description |
---|---|
System.Boolean |
AddNewAndRemoveDeletedTickClients()
Declaration
void AddNewAndRemoveDeletedTickClients()
AddNewTickClients()
Declaration
void AddNewTickClients()
DeleteRemovedTickClients()
Deletes all pending entities so they will no longer be executed.
Declaration
void DeleteRemovedTickClients()
RegisterTickClient(ILayer, ITickClient)
Loads an a at the runtime system to get be triggered by them.
The runtime system uses the passed executionInterval to associated the object in a specific execution
group.
Otherwise the type mapping of this object will be used or 1 as default value (triggered in each tick).
Declaration
void RegisterTickClient(ILayer layer, ITickClient tickClient)
Parameters
Type | Name | Description |
---|---|---|
ILayer | layer | The layer responsible for the tick client or the layer itself |
ITickClient | tickClient | The |
UnregisterAll()
Removes all registered entities, agents or layers from this runtime environment.
Declaration
void UnregisterAll()
UnregisterTickClient(ILayer, ITickClient)
Unloads a from the runtime system associated to the passed
The runtime system uses the executionInterval to deregister the tick object from the execution groups
Declaration
void UnregisterTickClient(ILayer layer, ITickClient tickClient)
Parameters
Type | Name | Description |
---|---|---|
ILayer | layer | The layer responsible for the tick client or the layer itself |
ITickClient | tickClient | The |