gslot.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2013 Graeme Walker <graeme_walker@users.sourceforge.net>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 // ===
17 //
18 // gslot.cpp
19 //
20 
21 #include "gdef.h"
22 #include "gslot.h"
23 
25 {
26 }
27 
28 G::SlotBase::SlotBase() : m_ref_count(1UL)
29 {
30 }
31 
33 {
34  m_ref_count++ ;
35 }
36 
38 {
39  m_ref_count-- ;
40  if( m_ref_count == 0UL )
41  delete this ;
42 }
43 
44 // ===
45 
46 void G::SignalImp::check( const SlotBase * p )
47 {
48  if( p != NULL )
49  throw AlreadyConnected() ;
50 }
51 
Part of the slot/signal system.
Definition: gslot.h:38
static void check(const SlotBase *p)
Definition: gslot.cpp:46
SlotBase()
Default constuctor.
Definition: gslot.cpp:28
virtual ~SlotBase()
Destructor.
Definition: gslot.cpp:24
void down()
Decrements the reference count and does "delete this" on zero.
Definition: gslot.cpp:37
void up()
Increments the reference count.
Definition: gslot.cpp:32