cached_value.h

Go to the documentation of this file.
00001 
00011 #ifndef CACHED_VALUE_H
00012 #define CACHED_VALUE_H
00013 
00014 #include "op_exception.h"
00015 
00019 template <class T>
00020 class cached_value
00021 {
00022 public:
00023     cached_value() : set(false) {}
00024 
00025     typedef T value_type;
00026 
00028     value_type const get() const {
00029         if (!set)
00030             throw op_fatal_error("cached value not set");
00031         return value;
00032     }
00033 
00035     bool cached() const { return set; }
00036 
00038     value_type const reset(value_type const & val) {
00039         value = val;
00040         set = true;
00041         return value;
00042     }
00043 
00044 private:
00046     value_type value;
00048     bool set;
00049 };
00050 
00051 
00052 #endif /* !CACHED_VALUE_H */

Generated on 8 Nov 2012 for Oprofile by  doxygen 1.6.1