#include <string>
#include <map>
-#include <pbd/xml++.h>
-#include <pbd/shiva.h>
-#include <pbd/command.h>
-#include <pbd/failed_constructor.h>
+#include "pbd/libpbd_visibility.h"
+#include "pbd/xml++.h"
+#include "pbd/shiva.h"
+#include "pbd/command.h"
+#include "pbd/failed_constructor.h"
/** This command class is initialized
*/
namespace PBD {
template <class obj_type, class arg_type>
-class FunctorCommand : public Command
+class /*LIBPBD_API*/ FunctorCommand : public Command
{
private:
typedef void (obj_type::*functor_type)(arg_type);
typedef typename FunctorMap::iterator FunctorMapIterator;
public:
- FunctorCommand(
- std::string functor,
- obj_type object,
- arg_type b,
- arg_type a
- ) : functor_name(functor),
- object(object),
- before(b),
- after(a)
+ FunctorCommand(std::string functor, obj_type& object, arg_type b, arg_type a)
+ : functor_name(functor)
+ , object(object)
+ , before(b)
+ , after(a)
{
method = find_functor(functor);
std::stringstream ss;
XMLNode *node = new XMLNode("FunctorCommand");
+ node->add_property("type_name", typeid(obj_type).name());
node->add_property("functor", functor_name);
ss << before;
node->add_property("before", ss.str());