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.
Inherited Members
System.IDisposable.Dispose()
Namespace: Mars.Core.Executor
Assembly: Mars.Core.dll
Syntax
public interface IRuntimeModel : IDisposable
Properties
| Improve this Doc View SourceAllActiveLayers
The set of active layers that have a pre-tick and post-tick method.
Declaration
ISet<ISteppedActiveLayer> AllActiveLayers { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.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 |
---|---|
System.Collections.Generic.IDictionary<AgentType, System.Collections.Generic.IDictionary<System.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 |
---|---|
System.Collections.Generic.IDictionary<System.Int32, Mars.Common.Core.Collections.HashStructures.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 |
---|---|
Mars.Common.Core.Collections.HashStructures.TwoWayDictionary<LayerType, ILayer> |
RegisterAgent
Gets the registration handle to load an ITickClient 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 ITickClient from the runtime system associated to the
passed ILayer
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
| Improve this Doc View SourceAddActiveLayer(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()
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.
Declaration
void AddNewAndRemoveDeletedTickClients()
AddNewTickClients()
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.
Declaration
void AddNewTickClients()
DeleteRemovedTickClients()
Deletes all pending entities so they will no longer be executed.
Declaration
void DeleteRemovedTickClients()
RegisterTickClient(ILayer, ITickClient)
Loads an a ITickClient 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 ITickClient object which shall be triggered now. |
UnregisterAll()
Removes all registered entities, agents or layers from this runtime environment.
Declaration
void UnregisterAll()
UnregisterTickClient(ILayer, ITickClient)
Unloads a ITickClient from the runtime system associated to the passed ILayer
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 ITickClient object which shall not be triggered anymore. |