X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fpbd%2Fdestructible.h;h=8881b45c55116d9f6523d06e6a997c68c780a6ac;hb=7a6e86c9f9bef8db74b755db659794c4a859f36d;hp=7c5080633489dd7ce2050dc25d99d39aea2d4ea9;hpb=ef6b25432d9c46d71b08c0f7d5f2686df428c4e8;p=ardour.git diff --git a/libs/pbd/pbd/destructible.h b/libs/pbd/pbd/destructible.h index 7c50806334..8881b45c55 100644 --- a/libs/pbd/pbd/destructible.h +++ b/libs/pbd/pbd/destructible.h @@ -1,26 +1,38 @@ -#ifndef __pbd_destructible_h__ -#define __pbd_destructible_h__ +/* + Copyright (C) 2000-2007 Paul Davis -#include + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -namespace PBD { + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -/* be very very careful using this class. it does not inherit from sigc::trackable and thus - should only be used in multiple-inheritance situations involving another type - that does inherit from sigc::trackable (or sigc::trackable itself) */ -class ThingWithGoingAway { - public: - virtual ~ThingWithGoingAway () {} - sigc::signal GoingAway; -}; +#ifndef __pbd_destructible_h__ +#define __pbd_destructible_h__ + +#include "pbd/signals.h" + +namespace PBD { -class Destructible : public sigc::trackable, public ThingWithGoingAway { +class Destructible { public: - virtual ~Destructible () {} - void drop_references () const { GoingAway(); } + Destructible() {} + virtual ~Destructible () { Destroyed(); } + + PBD::Signal0 Destroyed; + PBD::Signal0 DropReferences; + void drop_references () { DropReferences(); } }; }