Line data Source code
1 :
2 : /* Copyright (c) 2013, Stefan.Eilemann@epfl.ch
3 : *
4 : * This file is part of Lunchbox <https://github.com/Eyescale/Lunchbox>
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 LUNCHBOX_PLUGINVISITOR_H
21 : #define LUNCHBOX_PLUGINVISITOR_H
22 :
23 : #include <lunchbox/visitorResult.h> // enum
24 :
25 : namespace lunchbox
26 : {
27 : /**
28 : * Visitor for all plugins and compressors of a Plugin or PluginRegistry.
29 : * @version 1.7.1
30 : */
31 : template< class P, class I > class PluginVisitorT
32 : {
33 : public:
34 304 : PluginVisitorT() {} //!< Construct a new visitor @version 1.7.1
35 304 : virtual ~PluginVisitorT(){} //!< Desctruct this visitor @version 1.7.1
36 :
37 : /** Visit a plugin. @version 1.7.1 */
38 304 : virtual VisitorResult visit( P& /*plugin*/ ) { return TRAVERSE_CONTINUE; }
39 :
40 : /** Visit a compressor of a plugin. @version 1.7.1 */
41 0 : virtual VisitorResult visit( P& /*plugin*/, I& /*compressorInfo*/ )
42 0 : { return TRAVERSE_CONTINUE; }
43 : };
44 : }
45 : #endif // LUNCHBOX_PLUGINVISITOR_H
|