/*
- Copyright (C) 2000-2007 Paul Davis
+ Copyright (C) 2000-2007 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#define __pbd_destructible_h__
#include "pbd/signals.h"
+#include "pbd/libpbd_visibility.h"
namespace PBD {
-class Destructible {
+class LIBPBD_API Destructible {
public:
- Destructible() : refs_dropped (false){}
- virtual ~Destructible () {}
-
- PBD::Signal0<void> GoingAway;
- void drop_references () { if (!refs_dropped) { GoingAway(); } refs_dropped = true; }
-
- private:
- bool refs_dropped;
+ Destructible() {}
+ virtual ~Destructible () { Destroyed(); }
+
+ PBD::Signal0<void> Destroyed;
+ PBD::Signal0<void> DropReferences;
+
+ void drop_references () { DropReferences(); }
};
}