LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
LinguisticProcessingClientFactory.cpp
Go to the documentation of this file.
1// Copyright 2002-2019 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6/***************************************************************************
7 * Copyright (C) 2004-2019 by CEA LIST *
8 * *
9 ***************************************************************************/
10
14#include <iostream>
15namespace Lima
16{
17
18namespace LinguisticProcessing
19{
20
22 const std::string& id,
24 std::deque<std::string> langs,
25 std::deque<std::string> pipelines)
26{
28 LINFO << "LinguisticProcessingClientFactory::configureClientFactory" << id;
29 if (id.empty())
30 {
31 LIMA_LP_EXCEPTION("LinguisticProcessingClientFactory::configureClientFactory Trying to access to factory with empty name!");
32 }
33 std::shared_ptr<AbstractLinguisticProcessingClientFactory> factory=
35 if (factory==0) {
36 LERROR << "No factory defined for client '" << id << "' !";
37 LIMA_LP_EXCEPTION("No factory defined for given client");
38 }
39 std::deque<std::string>::iterator Itrlangs;
40// for ( Itrlangs=langs.begin(); Itrlangs!=langs.end();Itrlangs++)
41 //std::cout<<"ici la langue : "<<*Itrlangs<<std::endl;
42 factory->configure(
43 configuration,
44 langs,
45 pipelines);
46}
47
48std::shared_ptr< AbstractProcessingClient > LinguisticProcessingClientFactory::createClient(
49 const std::string& id) const
50{
52 LINFO << "Create client '" << id << "'";
53 if (id.empty())
54 {
55 LIMA_LP_EXCEPTION("LinguisticProcessingClientFactory::createClient Trying to create client with empty name!");
56 }
57 const std::shared_ptr<AbstractLinguisticProcessingClientFactory> factory=
59 if (factory==0) {
60 LIMA_LP_EXCEPTION("No factory defined for given client");
61 }
62
63 return factory->createClient();
64}
65
66
71
72
73std::unique_ptr< LinguisticProcessingClientFactoryFactory > LinguisticProcessingClientFactoryFactory::s_instance=std::unique_ptr< LinguisticProcessingClientFactoryFactory >(new LinguisticProcessingClientFactoryFactory());
74
75} // LinguisticProcessing
76
77} // Lima
#define LINFO
Definition LimaCommon.h:158
#define LERROR
Definition LimaCommon.h:161
#define LPCLIENTFACTORYLOGINIT
#define LIMA_LP_EXCEPTION(X)
This macro writes the message X to a previously configured error stream before throwing a LinguisticP...
Parser class for the lima's xml configuration files.
std::shared_ptr< AbstractProcessingClient > createClient(const std::string &id) const override
create an Client using the appropriate registered factory.
std::deque< std::string > getRegisteredFactories() const
show registered clientId
void configureClientFactory(const std::string &id, Common::XMLConfigurationFiles::XMLConfigurationFileParser &configuration, std::deque< std::string > langs=std::deque< std::string >(), std::deque< std::string > pipelines=std::deque< std::string >()) override
configure the corresponding clientFactory so that it can create clients.
static std::shared_ptr< AbstractLinguisticProcessingClientFactory > getFactory(const std::string &id)
get the factory corresponding to the given id
static std::deque< std::string > getRegisteredFactories()
get the list of factories registered
NAUTITIA.