Commit 3fb5f952 authored by PidgeyL's avatar PidgeyL
Browse files

Singleton objects

parent 00963bfb
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ import importlib

import lib.DatabaseLayer as db
from lib.Config    import Configuration as conf
from lib.Singleton import Singleton

# Constants
UNREACHABLE   = -1
@@ -28,7 +29,7 @@ class AuthenticationMethod:
  def validateUser(self, user, pwd):
    return WRONG_CREDS

class AuthenticationHandler:
class AuthenticationHandler(metaclass=Singleton):
  def __init__(self):
    self.methods = []
    self._load_methods()
+4 −3
Original line number Diff line number Diff line
@@ -18,8 +18,9 @@ import importlib
import lib.DatabaseLayer as db
from lib.Config    import Configuration as conf
from lib.Config    import ConfigReader
from lib.Singleton import Singleton

class PluginManager():
class PluginManager(metaclass=Singleton):
  def __init__(self):
    self.plugins = {}

lib/Singleton.py

0 → 100644
+6 −0
Original line number Diff line number Diff line
class Singleton(type):
  _instances = {}
  def __call__(cls, *args, **kwargs):
    if cls not in cls._instances:
      cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
    return cls._instances[cls]