Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
ExternalEventsNode.cs
1using System;
2using System.Collections.Generic;
3using System.IO;
4
6{
11 {
15 protected Dictionary<string, IExternalEvent> externalEvents = null;
16
23 : base(Parent, Model)
24 {
25 }
26
30 public abstract string Id
31 {
32 get;
33 }
34
40 {
41 string Name = ExternalEvent.Name;
42
43 if (this.externalEvents is null)
44 this.externalEvents = new Dictionary<string, IExternalEvent>();
45
46 if (this.externalEvents.ContainsKey(Name))
47 throw new Exception("External event named " + Name + " already registered.");
48 else
49 this.externalEvents[Name] = ExternalEvent;
50 }
51
58 public bool TryGetExternalEvent(string Name, out IExternalEvent ExternalEvent)
59 {
60 if (this.externalEvents is null)
61 {
62 ExternalEvent = null;
63 return false;
64 }
65 else
66 return this.externalEvents.TryGetValue(Name, out ExternalEvent);
67 }
68
74 public virtual void AnnotateActorUseCaseUml(StreamWriter Output, string Id)
75 {
76 }
77 }
78}
Root node of a simulation model
Definition: Model.cs:49
Handles an incoming event raised from an external source
Abstract base class for nodes that registers external events.
ExternalEventsNode(ISimulationNode Parent, Model Model)
Abstract base class for nodes that registers external events.
Dictionary< string, IExternalEvent > externalEvents
Registered external events.
void Register(IExternalEvent ExternalEvent)
Registers an external event on the actor.
bool TryGetExternalEvent(string Name, out IExternalEvent ExternalEvent)
Tries to get an external event, given its name.
abstract string Id
ID of collection node.
virtual void AnnotateActorUseCaseUml(StreamWriter Output, string Id)
Allows the actor to add notes related to the actor in use case diagrams.
Abstract base class for simulation nodes with children
ISimulationNode Parent
Parent node in the simulation model.
Basic interface for simulator nodes. Implementing this interface allows classes with default contruct...
Interface for nodes that can register external events.