diff --git a/ClassDiagram.md b/ClassDiagram.md index e69de29..8555a40 100644 --- a/ClassDiagram.md +++ b/ClassDiagram.md @@ -0,0 +1,62 @@ +```mermaid + classDiagram + +namespace EventPipelines{ + %% === Basisklassen === + class FirebirdEventArgs { + <> + } + + class Pipeline~T~ { + - PipelineMaster : object + + OnEvent : EventHandler~T~ + + SendEvent(sender : object, args : T) + } + + class EventBus { + - pipelines : Dictionary~FirebirdEvent, Pipeline~T~> + - pendingHooks : Dictionary ~FirebirdEvent, List~Action~object~~ + + OnPipelineExist~T~(callback : Action, type : FirebirdEvent) + + BuildPipeline~T~(type : FirebirdEvent, master : object) : Pipeline~T~ + + GetPipeline~T~(type : FirebirdEvent) : Pipeline~T~ + } + + %% === Spezialisierte Pipelines === + class KeyboardPipeline { + <> + } + + class MousePipeline { + <> + } + + %% === EventArgs Spezialisierungen === + class FirebirdKeyboardEventArgs { + <> + } + + class FirebirdMouseEventArgs { + <> + } + + %% === Enum === + class FirebirdEvent { + <> + Tick + ModulesLoading + Startup + KeyboardInputs + MouseInputs + } +} + + %% === Beziehungen === + Pipeline~T~ <|-- KeyboardPipeline + Pipeline~T~ <|-- MousePipeline + FirebirdEventArgs <|-- FirebirdKeyboardEventArgs + FirebirdEventArgs <|-- FirebirdMouseEventArgs + EventBus -->Pipeline~T~ + EventBus -->Pipeline~T~ + + +``` \ No newline at end of file