20 #ifndef ATSCPPAPI_INITIALIZABLEVALUE_H_
21 #define ATSCPPAPI_INITIALIZABLEVALUE_H_
28 extern bool transaction_data_caching_enabled;
33 template <
typename Type>
class InitializableValue {
35 InitializableValue() : initialized_(false) { }
36 explicit InitializableValue(Type value,
bool initialized =
true) : value_(value), initialized_(initialized) { }
38 inline void setValue(
const Type &value) {
43 inline bool isInitialized()
const {
44 #ifdef DISABLE_TRANSACTION_DATA_CACHING
47 return transaction_data_caching_enabled && initialized_;
50 inline Type &getValueRef() {
54 inline Type getValue() {
58 inline const Type &getValueRef()
const {
62 inline void setInitialized(
bool initialized =
true) {
63 initialized_ = initialized;
66 inline operator Type&() {
70 inline operator const Type&()
const {
74 inline InitializableValue<Type> &operator=(
const Type& value) {