From 3ed0e0f01c6f4c1ae9b3e79a566a778d3a6080d3 Mon Sep 17 00:00:00 2001 From: NikolajDanger Date: Wed, 12 Aug 2026 15:00:56 +0200 Subject: [PATCH] :goat: --- bachelor-project-nikolaj.pdf | Bin 854228 -> 855419 bytes bachelor-project-nikolaj.tex | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/bachelor-project-nikolaj.pdf b/bachelor-project-nikolaj.pdf index a80f1c4bec6582d2128f10029cca456e1ddf8b2d..819a1ac9c6521a258a784080f027152fbb132c1e 100644 GIT binary patch delta 22408 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 delta 21196 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 diff --git a/bachelor-project-nikolaj.tex b/bachelor-project-nikolaj.tex index b6310b7..bde1ad6 100644 --- a/bachelor-project-nikolaj.tex +++ b/bachelor-project-nikolaj.tex @@ -249,6 +249,26 @@ To address the identified limitations of MEOW and to expand its capabilities, I will be incorporating network event triggers into the existing event-based scheduler, to supplement the current file-based event triggers. My method focuses on leveraging Python's socket library to enable the processing of network events. The following subsections detail the specific methodologies employed in expanding the codebase, the design of the network event trigger mechanism, and the integration of this mechanism into the existing MEOW system. + + \begin{figure}[H] + \begin{center} + \begin{tikzpicture}[ + element/.style={draw, rectangle, rounded corners, minimum height = 1cm}, + arrow/.style={-Triangle, thick,shorten >=4pt} + ] + \node[element,text width=4cm,align=center,fill=blue!30!white] at (0,0) (mon) {Network Monitor}; + \node[element,fill=purple!20!white] at (-2,-3) (l1) {Listener}; + \node[element,fill=purple!20!white] at (0,-3) (l2) {Listener}; + \node[element,fill=purple!20!white] at (2,-3) (l3) {Listener}; + + \draw[arrow] (mon) -- (l1); + \draw[arrow] (mon) -- (l2); + \draw[arrow] (mon) -- (l3); + \end{tikzpicture} + \end{center} + \end{figure} + + \subsection{Design of the network event pattern} In the implementation of a pattern for network events, a key consideration was to integrate it seamlessly with the existing MEOW codebase. This required designing the pattern to behave similarly to the file event pattern when interacting with other elements of the scheduler. A central principle in this design was maintaining the loose coupling between patterns and recipes, minimizing direct dependencies between separate components. While this might not be possible for every theoretical recipe and pattern, designing for it could greatly improve future compatibility.