From fe6b2425015f870d7577dfe36c797124a6069bbf Mon Sep 17 00:00:00 2001 From: Thomas Ave Date: Wed, 25 May 2016 21:50:34 +0200 Subject: [PATCH] Backendmanager implementation --- src/CMakeLists.txt | 1 + src/backendmanager.cpp | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/backendmanager.cpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2f78fb4..316e1aa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,6 +9,7 @@ add_executable(Lexesis main.cpp automata.cpp backend.cpp + backendmanager.cpp re.cpp inputparser.cpp template.cpp diff --git a/src/backendmanager.cpp b/src/backendmanager.cpp new file mode 100644 index 0000000..5b99e88 --- /dev/null +++ b/src/backendmanager.cpp @@ -0,0 +1,15 @@ +#include "Lexesis/backendmanager.h" +#include "Lexesis/backend.h" + +namespace lxs { + void BackendManager::registerBackend(std::unique_ptr backend) { + m_backends.push_back(std::move(backend)); + } + + Backend* BackendManager::findBackendForLang(std::string lang) { + for(std::unique_ptr &backend: m_backends) { + if(backend->canProcessLang(lang)) return backend.get(); + } + return nullptr; + } +}