vpn/app/core/factory.py
2026-09-23 01:19:36 +00:00

23 lines
852 B
Python

from app.core.freeturn import FreeTurnBackend
from app.core.manager import EngineManager
from app.core.native import NativeEngineBackend
from app.core.registry import BackendRegistry
from app.core.signbox import SignBoxBackend
from app.models import EngineKind
def build_engine_manager(native_bridge=None) -> EngineManager:
registry = BackendRegistry()
if native_bridge is None:
registry.register(EngineKind.SIGNBOX, SignBoxBackend)
registry.register(EngineKind.FREETURN, FreeTurnBackend)
else:
registry.register(
EngineKind.SIGNBOX,
lambda: NativeEngineBackend(EngineKind.SIGNBOX, native_bridge),
)
registry.register(
EngineKind.FREETURN,
lambda: NativeEngineBackend(EngineKind.FREETURN, native_bridge),
)
return EngineManager(registry)