1 // Boost.Signals2 library
2 
3 // Copyright Frank Mori Hess 2007-2008.
4 // Use, modification and
5 // distribution is subject to the Boost Software License, Version
6 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
8 
9 // For more information, see http://www.boost.org
10 
11 #ifndef BOOST_SIGNALS2_SIGNAL_BASE_HPP
12 #define BOOST_SIGNALS2_SIGNAL_BASE_HPP
13 
14 #include <boost/noncopyable.hpp>
15 #include <boost/shared_ptr.hpp>
16 
17 namespace boost {
18   namespace signals2 {
19     class slot_base;
20 
21     class signal_base : public noncopyable
22     {
23     public:
24       friend class slot_base;
25 
~signal_base()26       virtual ~signal_base() {}
27     protected:
28       virtual shared_ptr<void> lock_pimpl() const = 0;
29     };
30   } // end namespace signals2
31 } // end namespace boost
32 
33 #endif // BOOST_SIGNALS2_SIGNAL_BASE_HPP
34