- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

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
24 G::SlotBase::~SlotBase()
25 {
26 }
27
28 G::SlotBase::SlotBase() : m_ref_count(1UL)
29 {
30 }
31
32 void G::SlotBase::up()
33 {
34 m_ref_count++ ;
35 }
36
37 void G::SlotBase::down()
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
G::SlotBase
Part of the slot/signal system.
Definition: gslot.h:38
gslot.h
G::SignalImp::check
static void check(const SlotBase *p)
Definition: gslot.cpp:46
G::SlotBase::SlotBase
SlotBase()
Default constuctor.
Definition: gslot.cpp:28
G::SlotBase::~SlotBase
virtual ~SlotBase()
Destructor.
Definition: gslot.cpp:24
G::SlotBase::down
void down()
Decrements the reference count and does "delete this" on zero.
Definition: gslot.cpp:37
G::SlotBase::up
void up()
Increments the reference count.
Definition: gslot.cpp:32