Coverage for functions \ flipdare \ manager \ task_manager.py: 50%
34 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-08 12:22 +1000
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-08 12:22 +1000
1#!/usr/bin/env python
2# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved.
3#
4# This file is part of Flipdare's proprietary software and contains
5# confidential and copyrighted material. Unauthorised copying,
6# modification, distribution, or use of this file is strictly
7# prohibited without prior written permission from Flipdare Pty Ltd.
8#
9# This software includes third-party components licensed under MIT,
10# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details.
11#
13from __future__ import annotations
14from flipdare.core.singleton import Singleton
15from flipdare.task.command_task_handler import CommandTaskHandler
16from flipdare.task.cron_task_handler import CronTaskHandler
17from flipdare.task.report_task_handler import ReportTaskHandler
18from flipdare.task.trigger_task_handler import TriggerTaskHandler
20__all__ = ["TaskManager"]
23class TaskManager(Singleton):
25 def __init__(
26 self,
27 report_handler: ReportTaskHandler | None = None,
28 cron_handler: CronTaskHandler | None = None,
29 command_handler: CommandTaskHandler | None = None,
30 trigger_handler: TriggerTaskHandler | None = None,
31 ) -> None:
32 super().__init__()
33 self._report_handler = report_handler
34 self._cron_handler = cron_handler
35 self._command_handler = command_handler
36 self._trigger_handler = trigger_handler
38 @property
39 def report_handler(self) -> ReportTaskHandler:
40 if self._report_handler is None:
41 self._report_handler = ReportTaskHandler.instance()
42 return self._report_handler
44 @property
45 def cron_handler(self) -> CronTaskHandler:
46 if self._cron_handler is None:
47 self._cron_handler = CronTaskHandler.instance()
48 return self._cron_handler
50 @property
51 def command_handler(self) -> CommandTaskHandler:
52 if self._command_handler is None:
53 self._command_handler = CommandTaskHandler.instance()
54 return self._command_handler
56 @property
57 def trigger_handler(self) -> TriggerTaskHandler:
58 if self._trigger_handler is None:
59 self._trigger_handler = TriggerTaskHandler.instance()
60 return self._trigger_handler