μHAL (v2.8.17)
Part of the IPbus software repository
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
log_inserter_helper.hpp
Go to the documentation of this file.
1/*
2---------------------------------------------------------------------------
3
4 This file is part of uHAL.
5
6 uHAL is a hardware access library and programming framework
7 originally developed for upgrades of the Level-1 trigger of the CMS
8 experiment at CERN.
9
10 uHAL is free software: you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
14
15 uHAL is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with uHAL. If not, see <http://www.gnu.org/licenses/>.
22
23
24 Andrew Rose, Imperial College, London
25 email: awr01 <AT> imperial.ac.uk
26
27 Marc Magrans de Abril, CERN
28 email: marc.magrans.de.abril <AT> cern.ch
29
30---------------------------------------------------------------------------
31*/
32
33#ifndef _uhal_log_inserters_helper_hpp_
34#define _uhal_log_inserters_helper_hpp_
35
36
37namespace uhal
38{
39 template< typename T >
40 void log_inserter ( const T& );
41
42
43 template< typename T >
45 {
46 protected:
47 RefWrapper ( const T& aT ) : mT ( aT ) {}
48 virtual ~RefWrapper() {}
49
50 public:
51 const T& value() const
52 {
53 return mT;
54 }
55
56 private:
57 const T& mT;
58 };
59
60
61 template< typename T >
62 class RefWrapper< T* >
63 {
64 protected:
65 RefWrapper ( const T* aT ) : mT ( aT ) {}
66 virtual ~RefWrapper() {}
67
68 public:
69 const T* value() const
70 {
71 return mT;
72 }
73
74 private:
75 const T* mT;
76 };
77
78}
79
80#endif
const T & value() const
void log_inserter(const T &)