1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
// SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
#ifndef DUNE_COMMON_TEST_PARAMETERIZEDOBJECTFACTORYSINGLETON_HH
#define DUNE_COMMON_TEST_PARAMETERIZEDOBJECTFACTORYSINGLETON_HH
#include <dune/common/parameterizedobject.hh>
#include <dune/common/singleton.hh>
#include <string>
#define DefineImplementation2(IF,T) \
struct T : public IF { \
T() {} \
std::string info() override { \
return #T; \
} \
}
#define DefineImplementation(IF,T,...) \
struct T : public IF { \
T(__VA_ARGS__) {} \
std::string info() override { \
return #T; \
} \
}
struct InterfaceA
{
virtual std::string info() = 0;
virtual ~InterfaceA() = default;
};
struct InterfaceB
{
virtual std::string info() = 0;
virtual ~InterfaceB() = default;
};
template<typename Interface>
Dune::ParameterizedObjectFactory<std::unique_ptr<Interface>(int)> &
globalPtrFactory()
{
return Dune::Singleton<Dune::ParameterizedObjectFactory<std::unique_ptr<Interface>(int)>>::instance();
}
#endif //#ifndef DUNE_COMMON_TEST_PARAMETERIZEDOBJECTFACTORYSINGLETON_HH
|