automatic commit
[folded-ctf.git] / shared.h
1
2 ///////////////////////////////////////////////////////////////////////////
3 // This program is free software: you can redistribute it and/or modify  //
4 // it under the terms of the version 3 of the GNU General Public License //
5 // as published by the Free Software Foundation.                         //
6 //                                                                       //
7 // This program is distributed in the hope that it will be useful, but   //
8 // WITHOUT ANY WARRANTY; without even the implied warranty of            //
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      //
10 // General Public License for more details.                              //
11 //                                                                       //
12 // You should have received a copy of the GNU General Public License     //
13 // along with this program. If not, see <http://www.gnu.org/licenses/>.  //
14 //                                                                       //
15 // Written by Francois Fleuret                                           //
16 // (C) Idiap Research Institute                                          //
17 //                                                                       //
18 // Contact <francois.fleuret@idiap.ch> for comments & bug reports        //
19 ///////////////////////////////////////////////////////////////////////////
20
21 /*
22
23   A tiny class to implement shared objects and lazy deletion. When you
24   create a reference to such an object, call grab(), and when you
25   destroy that reference, call release() which will delete it if no
26   reference remains. Never delete it yourself!
27
28  */
29
30 #ifndef SHARED_H
31 #define SHARED_H
32
33 #include "misc.h"
34
35 class Shared {
36   int _nb_refs;
37 public:
38   Shared();
39   virtual ~Shared();
40   void grab();
41   void release();
42 };
43
44 #endif