40 #ifndef _uhal_ValMem_hpp_ 41 #define _uhal_ValMem_hpp_ 48 #include <boost/shared_ptr.hpp> 62 UHAL_DEFINE_EXCEPTION_CLASS ( NonValidatedMemory ,
"Exception class to handle the case of attempted access on unvalidated memory." )
64 UHAL_DEFINE_EXCEPTION_CLASS ( ValMemImutabilityViolation , "Exception class to handle the case of attempted modification of validated memory." )
68 class ClientInterface;
90 friend class ValHeader;
96 _ValHeader_ (
const bool& aValid );
102 template<
typename T >
125 _ValWord_ (
const T& aValue ,
const bool& aValid ,
const uint32_t aMask );
130 template<
typename T >
150 _ValVector_ (
const std::vector<T>& aValue ,
const bool& aValid );
171 template<
typename T >
178 template<
typename T >
191 void valid (
bool aValid );
207 template<
typename T >
242 void valid (
bool aValid );
249 ValWord& operator = (
const T& aValue );
265 void value (
const T& aValue );
270 const uint32_t& mask()
const;
275 void mask (
const uint32_t& aMask );
292 template<
typename T >
303 typedef typename std::vector< T >::iterator
iterator;
316 ValVector (
const std::vector<T>& aValues );
340 void valid (
bool aValid );
346 template <
class InputIterator>
void assign ( InputIterator aBegin , InputIterator aEnd );
357 const T& operator[] ( std::size_t aIndex )
const;
363 const T& at ( std::size_t aIndex )
const;
368 std::size_t size()
const;
377 const_iterator begin()
const;
382 const_iterator end()
const;
387 const_reverse_iterator rbegin()
const;
392 const_reverse_iterator rend()
const;
397 std::vector<T> value()
const;
402 void value (
const std::vector<T>& aValue );
A class which wraps a single word of data and marks whether or not it is valid.
std::vector< T >::const_iterator const_iterator
typedef iterator to be that of the underlying storage type
std::vector< T >::const_reverse_iterator const_reverse_iterator
typedef iterator to be that of the underlying storage type
A class which wraps a block of data and marks whether or not it is valid.
boost::shared_ptr< _ValWord_< T > > mMembers
Return a std::deque containing all the IPbus headers returned during the transaction.
A Template helper struct wrapping an IPbus header, a register for storing a single word of data...
#define UHAL_DEFINE_EXCEPTION_CLASS(ClassName, ClassDescription)
std::vector< T > value
A block of memory for storing data.
const uint32_t NOMASK
define what it means to have no mask
std::vector< T >::reverse_iterator reverse_iterator
typedef iterator to be that of the underlying storage type
std::vector< T >::iterator iterator
typedef iterator to be that of the underlying storage type
uint32_t mask
A mask for modifying returned values.
T value
A register for storing data.
boost::shared_ptr< _ValVector_< T > > mMembers
Return a std::deque containing all the IPbus headers returned during the transaction.
An abstract base class for defining the interface to the various IPbus clients as well as providing t...
lDepths push_back(N_200MB)
A Template helper struct wrapping a block of IPbus header, a register for storing a block of data and...