Line data Source code
1 :
2 : /* Copyright (c) 2013-2014, Stefan.Eilemann@epfl.ch
3 : *
4 : * This file is part of Collage <https://github.com/Eyescale/Collage>
5 : *
6 : * This library is free software; you can redistribute it and/or modify it under
7 : * the terms of the GNU Lesser General Public License version 2.1 as published
8 : * by the Free Software Foundation.
9 : *
10 : * This library is distributed in the hope that it will be useful, but WITHOUT
11 : * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 : * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13 : * details.
14 : *
15 : * You should have received a copy of the GNU Lesser General Public License
16 : * along with this library; if not, write to the Free Software Foundation, Inc.,
17 : * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 : */
19 :
20 : #ifndef CO_SENDTOKEN_H
21 : #define CO_SENDTOKEN_H
22 :
23 : #include <co/api.h>
24 : #include <co/types.h>
25 :
26 : #include <boost/noncopyable.hpp>
27 : #include <lunchbox/referenced.h> // base class
28 :
29 : namespace co
30 : {
31 : /** @internal */
32 : class SendToken : public lunchbox::Referenced, public boost::noncopyable
33 : {
34 : public:
35 0 : ~SendToken() { release(); }
36 : CO_API void release();
37 :
38 : private:
39 0 : explicit SendToken(NodePtr node)
40 0 : : node_(node)
41 : {
42 0 : }
43 : NodePtr node_;
44 : friend class LocalNode;
45 : };
46 : }
47 :
48 : #endif // CO_SENDTOKEN_H
|