12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // Copyright 2014 Renato Tegon Forti, Antony Polukhin.
- // Copyright 2015-2019 Antony Polukhin.
- //
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt
- // or copy at http://www.boost.org/LICENSE_1_0.txt)
- #include <iostream>
- #include <boost/make_shared.hpp>
- // MinGW related workaround
- #define BOOST_DLL_FORCE_ALIAS_INSTANTIATION
- //[plugcpp_my_plugin_aggregator
- #include <boost/dll/alias.hpp> // for BOOST_DLL_ALIAS
- #include "../tutorial_common/my_plugin_api.hpp"
- namespace my_namespace {
- class my_plugin_aggregator : public my_plugin_api {
- float aggr_;
- my_plugin_aggregator() : aggr_(0) {}
- public:
- std::string name() const {
- return "aggregator";
- }
- float calculate(float x, float y) {
- aggr_ += x + y;
- return aggr_;
- }
- // Factory method
- static boost::shared_ptr<my_plugin_aggregator> create() {
- return boost::shared_ptr<my_plugin_aggregator>(
- new my_plugin_aggregator()
- );
- }
- };
- BOOST_DLL_ALIAS(
- my_namespace::my_plugin_aggregator::create, // <-- this function is exported with...
- create_plugin // <-- ...this alias name
- )
- } // namespace my_namespace
- //]
|