Removed unused file and updated UML.
Changed a few method names as well.
This commit is contained in:
parent
7438a76bf7
commit
1f9a2a4a5f
@ -5,6 +5,6 @@ namespace GameServiceWarden.Core.Module
|
||||
public interface IServiceManagerActionExecuter
|
||||
{
|
||||
void ExecuteAction(ServiceManagerAction action);
|
||||
void ViewState();
|
||||
void View();
|
||||
}
|
||||
}
|
@ -15,8 +15,8 @@ namespace GameServiceWarden.Core.Module
|
||||
private IServiceManagerMonitor managerMonitor;
|
||||
private readonly ConcurrentDictionary<string, ServiceDescriptor> running;
|
||||
private readonly IPersistent<IReadOnlyDictionary<string, string>> services;
|
||||
private readonly LRUCache<string, ServiceDescriptor> descriptorCache;
|
||||
private readonly IReadOnlyPersistent<IReadOnlyDictionary<string, IServiceModule>> modules;
|
||||
private readonly LRUCache<string, ServiceDescriptor> descriptorCache;
|
||||
|
||||
public ServiceManager(IServiceManagerMonitor actionMonitor, IPersistent<IReadOnlyDictionary<string, string>> services, IReadOnlyPersistent<IReadOnlyDictionary<string, IServiceModule>> modules)
|
||||
{
|
||||
@ -156,7 +156,7 @@ namespace GameServiceWarden.Core.Module
|
||||
return service.GetLogBuffer();
|
||||
}
|
||||
|
||||
public Dictionary<string, byte[]> GetLogBuffer() {
|
||||
public IReadOnlyDictionary<string, byte[]> GetLogBuffers() {
|
||||
Dictionary<string, byte[]> logs = new Dictionary<string, byte[]>();
|
||||
foreach (string service in running.Keys)
|
||||
{
|
||||
@ -235,12 +235,12 @@ namespace GameServiceWarden.Core.Module
|
||||
}
|
||||
}
|
||||
|
||||
public void ViewState()
|
||||
public void View()
|
||||
{
|
||||
GetServiceNames();
|
||||
GetRunningServiceNames();
|
||||
GetModuleNames();
|
||||
GetLogBuffer();
|
||||
GetLogBuffers();
|
||||
GetOptions();
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ namespace GameServiceWarden.Core.UI
|
||||
break;
|
||||
case CommunicableType.View:
|
||||
ViewRequest view = JsonSerializer.Deserialize<ViewRequest>(action.Item3);
|
||||
serviceExecutioner.ViewState();
|
||||
serviceExecutioner.View();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<mxfile host="65bd71144e" pages="2">
|
||||
<diagram id="LHR7ubqCPd17_LyHkaH9" name="Structure">
|
||||
<mxGraphModel dx="1051" dy="506" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<mxGraphModel dx="518" dy="740" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
@ -33,31 +33,28 @@
|
||||
<mxCell id="29" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" parent="1" source="dmd0HlDYcxYugIlahWj0-11" target="24" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="39" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" edge="1" parent="1" source="dmd0HlDYcxYugIlahWj0-11" target="35">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="dmd0HlDYcxYugIlahWj0-11" value="ServiceManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="669.5" y="640" width="561" height="360" as="geometry">
|
||||
<mxGeometry x="669.5" y="640" width="561" height="380" as="geometry">
|
||||
<mxRectangle x="25" y="490" width="120" height="26" as="alternateBounds"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="dmd0HlDYcxYugIlahWj0-12" value="- managerMonitor: IServiceManagerMonitor - running: ConcurrentDictionary<string, ServiceDescriptor> - services: IPersistent<GameServiceInfo> - modules: IReadOnlyPersistent<IReadOnlyDictionary<string, IServiceModule>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="dmd0HlDYcxYugIlahWj0-11" vertex="1">
|
||||
<mxGeometry y="26" width="561" height="74" as="geometry"/>
|
||||
<mxCell id="dmd0HlDYcxYugIlahWj0-12" value="- managerMonitor: IServiceManagerMonitor - running: ConcurrentDictionary<string, ServiceDescriptor> - services: IPersistent<IReadOnlyDictionary<string, string>> - modules: IReadOnlyPersistent<IReadOnlyDictionary<string, IServiceModule>> - descriptorCache: LRUCache<string, ServiceDescriptor>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="dmd0HlDYcxYugIlahWj0-11" vertex="1">
|
||||
<mxGeometry y="26" width="561" height="84" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="dmd0HlDYcxYugIlahWj0-13" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="dmd0HlDYcxYugIlahWj0-11" vertex="1">
|
||||
<mxGeometry y="100" width="561" height="8" as="geometry"/>
|
||||
<mxGeometry y="110" width="561" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="dmd0HlDYcxYugIlahWj0-14" value="+ CreateService(serviceName: string, assemblyName: string, moduleName: string): void + DeleteService(serviceName: string): void + GetModuleNames(): IEnumerable<string> + GetServiceNames(): IEnumerable<string> + GetRunningServiceNames(): IEnumerable<string> - GetServiceOptions(serviceName: string): IEnumerable<string> - GetServiceOptionValue(serviceName: string, optionName: string): IEnumerable<string> + GetOptions(): IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>> + SetServiceOptionValue(serviceName: string, optionName: string, string: value): bool + StartService(serviceName: string): void + StopService(serviceName: string): void + ExecuteCommand(serviceName: string, command: string): void - GetServiceLogPipeName(serviceName: string): string + GetLogPipeNames(): IReadOnlyDictionary<string, string> - OnServiceStateChange(sender: object, state: bool): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="dmd0HlDYcxYugIlahWj0-11" vertex="1">
|
||||
<mxGeometry y="108" width="561" height="252" as="geometry"/>
|
||||
<mxCell id="dmd0HlDYcxYugIlahWj0-14" value="+ CreateService(serviceName: string, assemblyName: string, moduleName: string): void + DeleteService(serviceName: string): void + GetModuleNames(): IEnumerable<string> + GetServiceNames(): IEnumerable<string> + GetRunningServiceNames(): IEnumerable<string> - GetServiceOptions(serviceName: string): IEnumerable<string> - GetServiceOptionValue(serviceName: string, optionName: string): IEnumerable<string> + GetOptions(): IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>> + SetServiceOptionValue(serviceName: string, optionName: string, string: value): bool + StartService(serviceName: string): void + StopService(serviceName: string): void + ExecuteCommand(serviceName: string, command: string): void - GetServiceLogBuffer(serviceName: string): byte[] + GetLogBuffers(): IReadOnlyDictionary<string, byte[]> - GenerateDescriptor(name: string, assembly: string, module: string): ServiceDescriptor - OnServiceStateChange(sender: object, state: bool): void - OnLogUpdated(sender: object, update: string)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="dmd0HlDYcxYugIlahWj0-11" vertex="1">
|
||||
<mxGeometry y="118" width="561" height="262" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="wwlaSBDwwZOn0hO83bWU-9" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=0;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="1679.5" y="202" as="sourcePoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wwlaSBDwwZOn0hO83bWU-10" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;dashed=1;endArrow=open;endFill=0;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="950" y="162" as="targetPoint"/>
|
||||
<mxPoint x="1814.5" y="172" as="sourcePoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="K1k0_LUP-qlT_3mlrptx-1" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="1414.5" y="133" as="targetPoint"/>
|
||||
@ -66,14 +63,14 @@
|
||||
<mxCell id="30" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" parent="1" source="wwlaSBDwwZOn0hO83bWU-2" target="24" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="wwlaSBDwwZOn0hO83bWU-2" value="<<Interface>> IServiceManagerActionExecuter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1386" y="406" width="305" height="74" as="geometry"/>
|
||||
<mxCell id="wwlaSBDwwZOn0hO83bWU-2" value="<<Interface>> IServiceExecuter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1386" y="406" width="305" height="90" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="wwlaSBDwwZOn0hO83bWU-4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="wwlaSBDwwZOn0hO83bWU-2" vertex="1">
|
||||
<mxGeometry y="40" width="305" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="wwlaSBDwwZOn0hO83bWU-5" value="+ ExecuteAction(action: ServiceManagerAction): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="wwlaSBDwwZOn0hO83bWU-2" vertex="1">
|
||||
<mxGeometry y="48" width="305" height="26" as="geometry"/>
|
||||
<mxCell id="wwlaSBDwwZOn0hO83bWU-5" value="+ ExecuteAction(action: ServiceManagerAction): void + View(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="wwlaSBDwwZOn0hO83bWU-2" vertex="1">
|
||||
<mxGeometry y="48" width="305" height="42" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="V3nv0dmUtDNsDw_gxP-z-2" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
@ -105,44 +102,47 @@
|
||||
<mxPoint as="offset"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="41" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" edge="1" parent="1" source="zFFzFwxISwJASp9ezwbr-1" target="35">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="zFFzFwxISwJASp9ezwbr-1" value="<<Interface>> IServiceManagerMonitor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="278" y="480" width="295" height="74" as="geometry"/>
|
||||
<mxGeometry x="278" y="460" width="295" height="90" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="zFFzFwxISwJASp9ezwbr-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="zFFzFwxISwJASp9ezwbr-1" vertex="1">
|
||||
<mxGeometry y="40" width="295" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="zFFzFwxISwJASp9ezwbr-4" value="+ Present(state: ServiceManagerState): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zFFzFwxISwJASp9ezwbr-1" vertex="1">
|
||||
<mxGeometry y="48" width="295" height="26" as="geometry"/>
|
||||
<mxCell id="zFFzFwxISwJASp9ezwbr-4" value="+ Present(state: ServiceManagerState): void + Present(delta: ServiceManagerDelta): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zFFzFwxISwJASp9ezwbr-1" vertex="1">
|
||||
<mxGeometry y="48" width="295" height="42" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="fdKXkHfjRXYybK0fejAG-9" value="<<DS>> ServiceManagerState" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="20" y="860" width="485" height="218" as="geometry"/>
|
||||
<mxCell id="fdKXkHfjRXYybK0fejAG-9" value="<<DS>> ServiceManagerTotal" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="20" y="850" width="485" height="138" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="fdKXkHfjRXYybK0fejAG-10" value="+ delta: bool + subtract: bool + services: ICollection<string> + running: ICollection<string> + modules: ICollection<string> + logs: IReadOnlyDictionary<string, string> + serviceOptions: IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="fdKXkHfjRXYybK0fejAG-9" vertex="1">
|
||||
<mxGeometry y="40" width="485" height="170" as="geometry"/>
|
||||
<mxCell id="fdKXkHfjRXYybK0fejAG-10" value="+ services: ICollection<string> + running: ICollection<string> + modules: ICollection<string> + logs: IReadOnlyDictionary<string, string> + serviceOptions: IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="fdKXkHfjRXYybK0fejAG-9" vertex="1">
|
||||
<mxGeometry y="40" width="485" height="90" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="fdKXkHfjRXYybK0fejAG-11" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="fdKXkHfjRXYybK0fejAG-9" vertex="1">
|
||||
<mxGeometry y="210" width="485" height="8" as="geometry"/>
|
||||
<mxGeometry y="130" width="485" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="SI3d9EEbteElKQB4Ic5T-10" value="<<Enum>> ServiceManagerAction.Type" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1336" y="610" width="180" height="168" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="SI3d9EEbteElKQB4Ic5T-11" value="+ Start + Stop + CreateService + DeleteService + ExecuteCommand + SetServiceOption + View" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="SI3d9EEbteElKQB4Ic5T-10" vertex="1">
|
||||
<mxCell id="SI3d9EEbteElKQB4Ic5T-11" value="+ Start + Stop + CreateService + DeleteService + ExecuteCommand + SetServiceOption" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="SI3d9EEbteElKQB4Ic5T-10" vertex="1">
|
||||
<mxGeometry y="40" width="180" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="SI3d9EEbteElKQB4Ic5T-12" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="SI3d9EEbteElKQB4Ic5T-10" vertex="1">
|
||||
<mxGeometry y="160" width="180" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="IPCMediator" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="685" y="122" width="520" height="320" as="geometry"/>
|
||||
<mxGeometry x="685" y="80" width="520" height="350" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="- CONNECT_TIMEOUT: int - name: string - pipesAndTasks: ConcurrentDictionary<string, (NamedPipeServerStream, Task)> + RequestQueue: default property of BlockingCollection<(string, CommunicableType, Byte[])> - active: bool + IsRunning: bool property - acceptTask: Task - stopToken: CancellationTokenSource" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
|
||||
<mxGeometry y="26" width="520" height="124" as="geometry"/>
|
||||
<mxCell id="7" value="- CONNECT_TIMEOUT: int + PipeName: property string property (appends ".pipe") - name: string - pipes: ConcurrentDictionary<string, (NamedPipeServerStream, Task)> + RequestQueue: default property of BlockingCollection<(string, CommunicableType, Byte[])> - active: bool + IsRunning: bool property - connectionTask: Task - stopAcceptingToken: CancellationTokenSource - connectingPipe: NamedPipeServerStream" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
|
||||
<mxGeometry y="26" width="520" height="154" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="8" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="6" vertex="1">
|
||||
<mxGeometry y="150" width="520" height="8" as="geometry"/>
|
||||
<mxGeometry y="180" width="520" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="9" value="+ Open(): void + Close(): void + ReplyAll(type: CommunicableType, data: byte[]): Task + Reply(identifier: string, type: CommunicableType, data: byte[]): Task + InitiateDisconnect(identifier: string, reason: string): Task + InitiateDisconnectAll(reason: string): Task - AcceptConnections(): Task - OnConnection(pipe: NamedPipeServerStream): Task - Listen(identifier: string, pipe: NamedPipeServerStream): Task" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
|
||||
<mxGeometry y="158" width="520" height="162" as="geometry"/>
|
||||
<mxGeometry y="188" width="520" height="162" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="20" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" parent="1" source="10" target="6" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
@ -166,7 +166,7 @@
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="IPCPresenter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="300" y="239" width="250" height="86" as="geometry"/>
|
||||
<mxGeometry x="300" y="252" width="250" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="- mediator: IPCMediator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="15" vertex="1">
|
||||
<mxGeometry y="26" width="250" height="26" as="geometry"/>
|
||||
@ -174,9 +174,6 @@
|
||||
<mxCell id="17" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="15" vertex="1">
|
||||
<mxGeometry y="52" width="250" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="18" value="+ Present(state: ServiceManagerState): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="15" vertex="1">
|
||||
<mxGeometry y="60" width="250" height="26" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="28" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=open;endFill=0;" parent="1" source="24" target="SI3d9EEbteElKQB4Ic5T-10" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
@ -189,352 +186,361 @@
|
||||
<mxCell id="26" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="24" vertex="1">
|
||||
<mxGeometry y="124" width="220" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="35" value="<<DS>> ServiceManagerDelta" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="440" y="630" width="160" height="158" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="36" value="+ substract: bool + service: string + running: string + modules: string + logs: byte[] + optionName: string + optionValue: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="35">
|
||||
<mxGeometry y="40" width="160" height="110" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="37" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="35">
|
||||
<mxGeometry y="150" width="160" height="8" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
<diagram id="gj0qHRc3eh050ABAey3g" name="Data-Flow">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGraphModel dx="1024" dy="592" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<root>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-0"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-1" parent="jVG6p58vlRYGO9X4wXeX-0"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-21" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;endArrow=open;endFill=0;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-2" target="jVG6p58vlRYGO9X4wXeX-3" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-2" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="10" y="300" width="30" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-12" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=open;endFill=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-3" target="jVG6p58vlRYGO9X4wXeX-4" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-22" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0.75;entryY=0.1;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=open;endFill=0;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-3" target="jVG6p58vlRYGO9X4wXeX-2" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="345FJoVc2gbAayMsQlD7-0" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-3" target="jVG6p58vlRYGO9X4wXeX-4" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="345FJoVc2gbAayMsQlD7-6" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-3" target="28FAlPysTx9DMYvLwa-2-7" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-3" value="Console View" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="80" y="300" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-13" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=open;endFill=0;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-4" target="jVG6p58vlRYGO9X4wXeX-5" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="345FJoVc2gbAayMsQlD7-2" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-4" target="jVG6p58vlRYGO9X4wXeX-5" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-4" value="string command (request)" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="260" y="482.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-8" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;endArrow=block;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-5" target="jVG6p58vlRYGO9X4wXeX-7" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-3" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;endArrow=open;endFill=0;dashed=1;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-5" target="jVG6p58vlRYGO9X4wXeX-7" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-18" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#006EAF;fillColor=#1ba1e2;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-5" target="jVG6p58vlRYGO9X4wXeX-9" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-5" value="MainController" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="420" y="482.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-6" value="http://www.plainionist.net/Implementing-Clean-Architecture-Controller-Presenter/" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry y="840" width="480" height="20" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-7" value="&lt;&lt;Interface&gt;&gt;<br>ICommand" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="420" y="372.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-10" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=block;endFill=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-9" target="jVG6p58vlRYGO9X4wXeX-7" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-8" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#006EAF;fillColor=#1ba1e2;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-9" target="UY-EM7-1ECCvWtENr50b-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxPoint x="809.9999999999998" y="512.5000000000002" as="sourcePoint"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxGeometry>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="345FJoVc2gbAayMsQlD7-3" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-9" target="UY-EM7-1ECCvWtENr50b-2" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="345FJoVc2gbAayMsQlD7-4" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="jVG6p58vlRYGO9X4wXeX-9" target="UY-EM7-1ECCvWtENr50b-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="jVG6p58vlRYGO9X4wXeX-9" value="ServiceController" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="575" y="482.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-4" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=none;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-1" target="UY-EM7-1ECCvWtENr50b-2" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-5" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;dashed=1;endArrow=block;endFill=0;strokeColor=#f0f0f0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-1" target="UY-EM7-1ECCvWtENr50b-2" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-7" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1.008;entryY=0.625;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=open;endFill=0;strokeColor=#f0f0f0;dashed=1;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-1" target="UY-EM7-1ECCvWtENr50b-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<Array as="points">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxPoint x="960" y="338"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxPoint x="960" y="580"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</Array>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxGeometry>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-16" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=open;endFill=0;dashed=1;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-1" target="UY-EM7-1ECCvWtENr50b-11" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="345FJoVc2gbAayMsQlD7-7" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-1" target="UY-EM7-1ECCvWtENr50b-10" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<Array as="points">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxPoint x="960" y="338"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxPoint x="960" y="83"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</Array>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxGeometry>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-1" value="ServiceManager" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="800" y="307.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-9" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=open;endFill=0;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-5" target="tM_Gde3HH8YiZ2frBV5J-0" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-12" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=block;endFill=0;strokeColor=#f0f0f0;dashed=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-5" target="UY-EM7-1ECCvWtENr50b-11" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-13" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#f0f0f0;dashed=1;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-5" target="UY-EM7-1ECCvWtENr50b-10" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="tM_Gde3HH8YiZ2frBV5J-3" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=block;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-5" target="tM_Gde3HH8YiZ2frBV5J-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-5" value="ServicePresenter" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="575" y="122.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-8" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=open;endFill=0;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-7" target="jVG6p58vlRYGO9X4wXeX-3" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="tM_Gde3HH8YiZ2frBV5J-5" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-7" target="tM_Gde3HH8YiZ2frBV5J-0" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="28FAlPysTx9DMYvLwa-2-7" value="String Output" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="260" y="122.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-1" value="ServiceAction &lt;DS&gt;" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="800" y="542.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-6" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#f0f0f0;dashed=1;" parent="jVG6p58vlRYGO9X4wXeX-1" source="UY-EM7-1ECCvWtENr50b-2" target="UY-EM7-1ECCvWtENr50b-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-20" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#006EAF;fillColor=#1ba1e2;" parent="jVG6p58vlRYGO9X4wXeX-1" source="UY-EM7-1ECCvWtENr50b-1" target="28FAlPysTx9DMYvLwa-2-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-2" value="&lt;&lt;Interface&gt;&gt;<br>IServiceManipulator" style="whiteSpace=wrap;html=1;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="800" y="432.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-22" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#006EAF;fillColor=#1ba1e2;" parent="jVG6p58vlRYGO9X4wXeX-1" source="UY-EM7-1ECCvWtENr50b-10" target="28FAlPysTx9DMYvLwa-2-5" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-10" value="ServicesResult &lt;DS&gt;" style="whiteSpace=wrap;html=1;fillColor=none;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="800" y="67.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-14" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#f0f0f0;dashed=1;" parent="jVG6p58vlRYGO9X4wXeX-1" source="UY-EM7-1ECCvWtENr50b-11" target="UY-EM7-1ECCvWtENr50b-10" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-21" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#006EAF;fillColor=#1ba1e2;" parent="jVG6p58vlRYGO9X4wXeX-1" source="28FAlPysTx9DMYvLwa-2-1" target="UY-EM7-1ECCvWtENr50b-10" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-11" value="&lt;&lt;Interface&gt;&gt;<br>IServicesMonitor" style="whiteSpace=wrap;html=1;fillColor=none;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="800" y="167.5" width="120" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-70" value="" style="line;strokeWidth=2;direction=south;html=1;fillColor=none;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="220" y="50" width="10" height="570" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-71" value="" style="line;strokeWidth=2;direction=south;html=1;fillColor=none;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="760" y="50" width="10" height="570" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="UY-EM7-1ECCvWtENr50b-73" value="Page 191 (Chapter 22) of Clean Architecture" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry y="870" width="480" height="20" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="tM_Gde3HH8YiZ2frBV5J-2" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;endArrow=block;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="tM_Gde3HH8YiZ2frBV5J-0" target="tM_Gde3HH8YiZ2frBV5J-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="tM_Gde3HH8YiZ2frBV5J-4" value="Use" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="jVG6p58vlRYGO9X4wXeX-1" source="tM_Gde3HH8YiZ2frBV5J-0" target="tM_Gde3HH8YiZ2frBV5J-1" edge="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="tM_Gde3HH8YiZ2frBV5J-0" value="MainPresenter" style="html=1;dashed=0;whitespace=wrap;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="420" y="122.5" width="110" height="60" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxCell id="tM_Gde3HH8YiZ2frBV5J-1" value="&lt;&lt;Interface&gt;&gt;<br>IConsoleOutput" style="html=1;dashed=0;whitespace=wrap;" parent="jVG6p58vlRYGO9X4wXeX-1" vertex="1">
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
<mxGeometry x="420" y="20" width="110" height="50" as="geometry"/>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxCell>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</root>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</mxGraphModel>
|
||||

 
 
 
 





|
||||

 
 
 
 
 
 







|
||||
</diagram>
|
||||
</mxfile>
|
@ -217,7 +217,7 @@ namespace GameServiceWarden.Core.Tests.Modules
|
||||
serviceManager.StartService(FAKE_SERVICE_NAME);
|
||||
serviceManager.ExecuteCommand(FAKE_SERVICE_NAME, COMMAND);
|
||||
//Then
|
||||
using (MemoryStream mem = new MemoryStream(serviceManager.GetLogBuffer()[FAKE_SERVICE_NAME]))
|
||||
using (MemoryStream mem = new MemoryStream(serviceManager.GetLogBuffers()[FAKE_SERVICE_NAME]))
|
||||
{
|
||||
using (StreamReader reader = new StreamReader(mem))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user