Skip to content

Commit 1ed0489

Browse files
author
philippdolder
committed
Initialized ModuleController to run on a background thread
1 parent 46456e3 commit 1ed0489

File tree

7 files changed

+102
-7
lines changed

7 files changed

+102
-7
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ _ReSharper*/
88
*.Cache
99
*.cache
1010
/msbuild.log
11-
source/SiriusCybernetics.suo
11+
source/SiriusCybernetics.suo
12+
source/SiriusCybernetics.5.1.ReSharper.user
13+
source/SiriusCybernetics.sln.docstates.suo
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<StyleCopSettings Version="105">
2+
<Parsers>
3+
<Parser ParserId="StyleCop.CSharp.CsParser">
4+
<ParserSettings>
5+
<BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
6+
</ParserSettings>
7+
</Parser>
8+
</Parsers>
9+
<Analyzers>
10+
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
11+
<Rules>
12+
<Rule Name="ElementsMustBeDocumented">
13+
<RuleSettings>
14+
<BooleanProperty Name="Enabled">False</BooleanProperty>
15+
</RuleSettings>
16+
</Rule>
17+
<Rule Name="PartialElementsMustBeDocumented">
18+
<RuleSettings>
19+
<BooleanProperty Name="Enabled">False</BooleanProperty>
20+
</RuleSettings>
21+
</Rule>
22+
<Rule Name="EnumerationItemsMustBeDocumented">
23+
<RuleSettings>
24+
<BooleanProperty Name="Enabled">False</BooleanProperty>
25+
</RuleSettings>
26+
</Rule>
27+
<Rule Name="FileMustHaveHeader">
28+
<RuleSettings>
29+
<BooleanProperty Name="Enabled">False</BooleanProperty>
30+
</RuleSettings>
31+
</Rule>
32+
<Rule Name="FileHeaderMustShowCopyright">
33+
<RuleSettings>
34+
<BooleanProperty Name="Enabled">False</BooleanProperty>
35+
</RuleSettings>
36+
</Rule>
37+
<Rule Name="FileHeaderMustHaveCopyrightText">
38+
<RuleSettings>
39+
<BooleanProperty Name="Enabled">False</BooleanProperty>
40+
</RuleSettings>
41+
</Rule>
42+
<Rule Name="FileHeaderMustContainFileName">
43+
<RuleSettings>
44+
<BooleanProperty Name="Enabled">False</BooleanProperty>
45+
</RuleSettings>
46+
</Rule>
47+
<Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
48+
<RuleSettings>
49+
<BooleanProperty Name="Enabled">False</BooleanProperty>
50+
</RuleSettings>
51+
</Rule>
52+
<Rule Name="FileHeaderMustHaveValidCompanyText">
53+
<RuleSettings>
54+
<BooleanProperty Name="Enabled">False</BooleanProperty>
55+
</RuleSettings>
56+
</Rule>
57+
<Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
58+
<RuleSettings>
59+
<BooleanProperty Name="Enabled">False</BooleanProperty>
60+
</RuleSettings>
61+
</Rule>
62+
</Rules>
63+
<AnalyzerSettings>
64+
<BooleanProperty Name="IgnorePrivates">True</BooleanProperty>
65+
</AnalyzerSettings>
66+
</Analyzer>
67+
</Analyzers>
68+
</StyleCopSettings>

source/SiriusCybernetics.Transporter/Vhpt.cs

+8-4
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ public class Vhpt : IVhpt, IJokeTellerMonitor, IVhptRemoteControl
1111
private readonly int timeDilatationFactor;
1212
private int currentFloor;
1313
private readonly Random random;
14-
private ModuleController asyncModule;
14+
private IModuleController asyncModule;
1515

16-
public Vhpt(string name, int timeDilatationFactor)
16+
public Vhpt(string name, int timeDilatationFactor, IModuleController moduleController)
1717
{
1818
this.timeDilatationFactor = timeDilatationFactor;
1919
this.Name = name;
@@ -23,8 +23,12 @@ public Vhpt(string name, int timeDilatationFactor)
2323

2424
this.random = new Random();
2525

26-
this.asyncModule = new ModuleController();
27-
this.asyncModule.Initialize(this);
26+
this.asyncModule = moduleController;
27+
}
28+
29+
public void Initialize()
30+
{
31+
this.asyncModule.Initialize(this, true);
2832
this.asyncModule.AfterConsumeMessage += this.HandleAfterConsumeMessage;
2933
this.asyncModule.Start();
3034
}

source/SiriusCybernetics.Transporter/VhptManager.cs

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace SiriusCybernetics
22
{
33
using System.Collections.Generic;
4+
using bbv.Common.AsyncModule;
45

56
/// <summary>
67
/// Manages the happy people transporters
@@ -11,10 +12,16 @@ public class VhptManager : IVhptManager
1112

1213
public VhptManager()
1314
{
15+
var freddyTours = new Vhpt("Freddy Tours", 1000, new ModuleController());
16+
freddyTours.Initialize();
17+
18+
var sonamar = new Vhpt("Sonamar", 1000, new ModuleController());
19+
sonamar.Initialize();
20+
1421
this.vhpts = new List<IVhpt>
1522
{
16-
new Vhpt("Freddy Tours", 1000),
17-
new Vhpt("Sonamar", 1000)
23+
freddyTours,
24+
sonamar
1825
};
1926
}
2027

source/SiriusCybernetics/JokeTelling/JokeTeller.cs

+6
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ public JokeTeller(IModuleController controller, IJokeEngine jokeEngine)
2525
this.jokeEngine = jokeEngine;
2626
}
2727

28+
public void Initialize()
29+
{
30+
this.controller.Initialize(this, true);
31+
this.controller.Start();
32+
}
33+
2834
public void TellJoke(IVhpt vhpt)
2935
{
3036
this.controller.EnqueueMessage(vhpt);

source/SiriusCybernetics/Program.cs

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public static void Main()
5858
private static VhptController CreateVhptController(IVhpt vhpt, EventBroker eventBroker)
5959
{
6060
var jokeTeller = new JokeTeller(new ModuleController(), new JokeEngine());
61+
jokeTeller.Initialize();
6162
eventBroker.Register(jokeTeller);
6263

6364
return new VhptController(vhpt, new ActiveStateMachine<VhptStates, VhptEvents>(), jokeTeller);

source/SiriusCybernetics/Settings.StyleCop

+7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
<StyleCopSettings Version="105">
2+
<Parsers>
3+
<Parser ParserId="StyleCop.CSharp.CsParser">
4+
<ParserSettings>
5+
<BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
6+
</ParserSettings>
7+
</Parser>
8+
</Parsers>
29
<Analyzers>
310
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
411
<Rules>

0 commit comments

Comments
 (0)