#ifndef __pbd_destructible_h__
#define __pbd_destructible_h__
-#include <boost/signals2.hpp>
+#include "pbd/signals.h"
+#include "pbd/libpbd_visibility.h"
namespace PBD {
-class Destructible {
+class LIBPBD_API Destructible {
public:
- Destructible() : refs_dropped (false){}
- virtual ~Destructible () {}
+ Destructible() {}
+ virtual ~Destructible () { Destroyed(); }
- boost::signals2::signal<void ()> GoingAway;
- void drop_references () { if (!refs_dropped) { GoingAway(); } refs_dropped = true; }
+ PBD::Signal0<void> Destroyed;
+ PBD::Signal0<void> DropReferences;
- private:
- bool refs_dropped;
+ void drop_references () { DropReferences(); }
};
}