From 54d3c463337e06ea3fecfcbc78418e43aee5c1c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Tr=C3=A1vn=C3=AD=C4=8Dek?= <jan.travnicek@fit.cvut.cz>
Date: Fri, 21 Jan 2022 21:44:27 +0100
Subject: [PATCH] abstraction: allow constant retrieval of value from value
 holder

---
 alib2abstraction/src/abstraction/ValueHolder.hpp          | 8 ++++++++
 alib2abstraction/src/abstraction/ValueHolderInterface.hpp | 2 ++
 2 files changed, 10 insertions(+)

diff --git a/alib2abstraction/src/abstraction/ValueHolder.hpp b/alib2abstraction/src/abstraction/ValueHolder.hpp
index fef24d6c4a..1138f22a0c 100644
--- a/alib2abstraction/src/abstraction/ValueHolder.hpp
+++ b/alib2abstraction/src/abstraction/ValueHolder.hpp
@@ -23,6 +23,10 @@ public:
 	Type && getValue ( ) override {
 		return std::move ( m_data.value ( ) );
 	}
+
+	const Type & getValue ( ) const override {
+		return m_data.value ( );
+	}
 };
 
 template < class Type >
@@ -39,6 +43,10 @@ public:
 	Type && getValue ( ) override {
 		return std::move ( m_data->get ( ) );
 	}
+
+	const Type & getValue ( ) const override {
+		return m_data->get ( );
+	}
 };
 
 template < class Type >
diff --git a/alib2abstraction/src/abstraction/ValueHolderInterface.hpp b/alib2abstraction/src/abstraction/ValueHolderInterface.hpp
index 319282015c..aa0f68b548 100644
--- a/alib2abstraction/src/abstraction/ValueHolderInterface.hpp
+++ b/alib2abstraction/src/abstraction/ValueHolderInterface.hpp
@@ -15,6 +15,8 @@ public:
 
 	virtual Type && getValue ( ) = 0;
 
+	virtual const Type & getValue ( ) const = 0;
+
 };
 
 template < class ParamType >
-- 
GitLab