summaryrefslogtreecommitdiff
path: root/src/apscheduler/datastores/base.py
blob: c05d28c8a6cbb92fb6579c9cd115bd11b67eb25d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from __future__ import annotations

from apscheduler.abc import (
    AsyncDataStore,
    AsyncEventBroker,
    DataStore,
    EventBroker,
    EventSource,
)


class BaseDataStore(DataStore):
    _events: EventBroker

    def start(self, event_broker: EventBroker) -> None:
        self._events = event_broker

    def stop(self, *, force: bool = False) -> None:
        del self._events

    @property
    def events(self) -> EventSource:
        return self._events


class BaseAsyncDataStore(AsyncDataStore):
    _events: AsyncEventBroker

    async def start(self, event_broker: AsyncEventBroker) -> None:
        self._events = event_broker

    async def stop(self, *, force: bool = False) -> None:
        del self._events

    @property
    def events(self) -> EventSource:
        return self._events