class CameraCommander: class InvalidStateException(Exception): pass Cameras = [] def Register(context, camera): for c in CameraCommander.Cameras: if c.camera.id == camera.id: print("[CameraCommander] : Camera ({}) already registered".format(camera.id)) raise CameraCommander.InvalidStateException() CameraCommander.Cameras.append(context) print("[CameraCommander] : Camera ({}) registered".format(camera.id)) def GetContext(camera): for c in CameraCommander.Cameras: if c.camera.id == camera.id: return c return None def IsRegistered(context): return context in CameraCommander.Cameras def Remove(context): CameraCommander.Cameras.remove(context) print("[CameraCommander] : Camera ({}) unregistered".format(context.camera.id))