class SidebandPlugin(): pass class SidebandCommandPlugin(SidebandPlugin): def __init__(self, sideband_core): self.__sideband = sideband_core self.__started = False self.command_name = type(self).command_name def start(self): self.__started = True def stop(self): self.__started = False def is_running(self): return self.__started == True def get_sideband(self): return self.__sideband def handle_command(self, arguments): raise NotImplementedError class SidebandServicePlugin(SidebandPlugin): def __init__(self, sideband_core): self.__sideband = sideband_core self.__started = False self.service_name = type(self).service_name def start(self): self.__started = True def stop(self): self.__started = False def is_running(self): return self.__started == True def get_sideband(self): return self.__sideband