LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
SimpleFactory.h
Go to the documentation of this file.
1// Copyright 2002-2013 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-2012 by CEA LIST *
8 * *
9 ***************************************************************************/
10
11#ifndef LIMA_COMMON_ABSTRACTFACTORYPATTERN_SIMPLEFACTORY_H
12#define LIMA_COMMON_ABSTRACTFACTORYPATTERN_SIMPLEFACTORY_H
13
14// #include "MainFactory.h"
16
17namespace Lima
18{
19
26template<typename Base,typename Object>
28{
29public:
30
35 SimpleFactory(const std::string& id);
36
37 virtual ~SimpleFactory() {}
38
47 virtual std::shared_ptr<Base> create(
49 typename Base::Manager* manager) const override;
50
51};
52
53template<typename Base,typename Object>
54SimpleFactory<Base,Object>::SimpleFactory(const std::string& classId) :
55 InitializableObjectFactory<Base>(classId)
56{}
57
58template<typename Base,typename Object>
61 typename Base::Manager* manager) const
62{
63 auto obj = std::make_shared<Object>();
64 obj->setId(unitConfiguration.getName());
65 obj->init(unitConfiguration, manager);
66 return obj;
67}
68
69} // Lima
70
71#endif
Defines Factory for an Initializable Object.
SimpleFactory(const std::string &id)
Constructor.
virtual std::shared_ptr< Base > create(Common::XMLConfigurationFiles::GroupConfigurationStructure &unitConfiguration, typename Base::Manager *manager) const override
create an object of class Object.
NAUTITIA.