From 426b5538a671d958c943deb29cbe3af5d1b1f255 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Mon, 17 Jun 2019 21:10:54 +0200 Subject: [PATCH] drop reset from OperationAbstraction --- .../AnyaryOperationAbstraction.cpp | 2 +- .../abstraction/NaryOperationAbstraction.hpp | 2 +- .../src/abstraction/OperationAbstraction.hpp | 3 +- .../src/abstraction/PackingAbstraction.hpp | 11 ++-- .../abstraction/ValueOperationAbstraction.hpp | 53 +++++-------------- .../src/abstraction/WrapperAbstraction.hpp | 16 +++--- 6 files changed, 25 insertions(+), 62 deletions(-) diff --git a/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.cpp b/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.cpp index 77849536be..940857b9ce 100644 --- a/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.cpp +++ b/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.cpp @@ -45,7 +45,7 @@ bool AnyaryOperationAbstractionImpl::eval ( ) { if ( ! inputsAttached ( ) ) return false; - if ( this->cached ( ) ) + if ( this->evaluated ( ) ) return true; for ( const std::pair < std::shared_ptr < OperationAbstraction >, bool > & param : m_params ) diff --git a/alib2abstraction/src/abstraction/NaryOperationAbstraction.hpp b/alib2abstraction/src/abstraction/NaryOperationAbstraction.hpp index 446a8471f1..f2ea56ab59 100644 --- a/alib2abstraction/src/abstraction/NaryOperationAbstraction.hpp +++ b/alib2abstraction/src/abstraction/NaryOperationAbstraction.hpp @@ -74,7 +74,7 @@ public: if ( ! inputsAttached ( ) ) return false; - if ( this->cached ( ) ) + if ( this->evaluated ( ) ) return true; for ( const std::pair < std::shared_ptr < OperationAbstraction >, bool > & param : m_params ) diff --git a/alib2abstraction/src/abstraction/OperationAbstraction.hpp b/alib2abstraction/src/abstraction/OperationAbstraction.hpp index a623930576..ef3afbe58c 100644 --- a/alib2abstraction/src/abstraction/OperationAbstraction.hpp +++ b/alib2abstraction/src/abstraction/OperationAbstraction.hpp @@ -30,9 +30,8 @@ public: virtual bool inputsAttached ( ) const = 0; virtual bool eval ( ) = 0; + virtual bool evaluated ( ) const = 0; virtual size_t numberOfParams ( ) const = 0; - virtual bool cached ( ) const = 0; - virtual void reset ( ) = 0; virtual ext::type_index getParamTypeIndex ( size_t index ) const = 0; virtual ext::type_index getReturnTypeIndex ( ) const = 0; diff --git a/alib2abstraction/src/abstraction/PackingAbstraction.hpp b/alib2abstraction/src/abstraction/PackingAbstraction.hpp index 9307cb355c..ac6ba8e8cd 100644 --- a/alib2abstraction/src/abstraction/PackingAbstraction.hpp +++ b/alib2abstraction/src/abstraction/PackingAbstraction.hpp @@ -90,7 +90,7 @@ public: if ( ! inputsAttached ( ) ) return false; - if ( this->cached ( ) ) + if ( this->evaluated ( ) ) return true; return this->run ( ); @@ -100,13 +100,8 @@ public: return NumberOfParams; } - bool cached ( ) const override { - return m_abstractions [ m_resultId ]->cached ( ); - } - - void reset ( ) override { - for ( std::shared_ptr < abstraction::OperationAbstraction > & abstraction : m_abstractions ) - return abstraction->reset ( ); + bool evaluated ( ) const override { + return m_abstractions [ m_resultId ]->evaluated ( ); } ext::type_index getParamTypeIndex ( size_t index ) const override { diff --git a/alib2abstraction/src/abstraction/ValueOperationAbstraction.hpp b/alib2abstraction/src/abstraction/ValueOperationAbstraction.hpp index 8e95282b80..492ff19430 100644 --- a/alib2abstraction/src/abstraction/ValueOperationAbstraction.hpp +++ b/alib2abstraction/src/abstraction/ValueOperationAbstraction.hpp @@ -55,7 +55,7 @@ protected: public: template < typename ... ParamTypes, typename Callable > inline void run_helper ( Callable callback, const ext::array < std::pair < std::shared_ptr < OperationAbstraction >, bool >, sizeof ... ( ParamTypes ) > & inputs ) { - if ( ! cached ( ) ) + if ( ! evaluated ( ) ) setData ( abstraction::apply < ParamTypes ... > ( callback, inputs ) ); } @@ -67,13 +67,9 @@ public: return abstraction::ParamQualifiers::paramQualifiers < ReturnType > ( ); } - bool cached ( ) const override { + bool evaluated ( ) const override { return ( bool ) m_data; } - - void reset ( ) override { - m_data.reset ( ); - } }; template < class ReturnType > @@ -108,7 +104,7 @@ protected: public: template < typename ... ParamTypes, typename Callable > inline void run_helper ( Callable callback, const ext::array < std::pair < std::shared_ptr < OperationAbstraction >, bool >, sizeof ... ( ParamTypes ) > & inputs ) { - if ( ! cached ( ) ) + if ( ! evaluated ( ) ) setData ( abstraction::apply < ParamTypes ... > ( callback, inputs ) ); } @@ -120,13 +116,9 @@ public: return abstraction::ParamQualifiers::paramQualifiers < const ReturnType > ( ); } - bool cached ( ) const override { + bool evaluated ( ) const override { return ( bool ) m_data; } - - void reset ( ) override { - m_data.reset ( ); - } }; template < class ReturnType > @@ -161,7 +153,7 @@ protected: public: template < typename ... ParamTypes, typename Callable > inline void run_helper ( Callable callback, const ext::array < std::pair < std::shared_ptr < OperationAbstraction >, bool >, sizeof ... ( ParamTypes ) > & inputs ) { - if ( ! cached ( ) ) + if ( ! evaluated ( ) ) setData ( abstraction::apply < ParamTypes ... > ( callback, inputs ) ); } @@ -173,13 +165,9 @@ public: return abstraction::ParamQualifiers::paramQualifiers < ReturnType & > ( ); } - bool cached ( ) const override { + bool evaluated ( ) const override { return ( bool ) m_data; } - - void reset ( ) override { - m_data.reset ( ); - } }; template < class ReturnType > @@ -214,7 +202,7 @@ protected: public: template < typename ... ParamTypes, typename Callable > inline void run_helper ( Callable callback, const ext::array < std::pair < std::shared_ptr < OperationAbstraction >, bool >, sizeof ... ( ParamTypes ) > & inputs ) { - if ( ! cached ( ) ) + if ( ! evaluated ( ) ) setData ( abstraction::apply < ParamTypes ... > ( callback, inputs ) ); } @@ -226,13 +214,9 @@ public: return abstraction::ParamQualifiers::paramQualifiers < const ReturnType & > ( ); } - bool cached ( ) const override { + bool evaluated ( ) const override { return ( bool ) m_data; } - - void reset ( ) override { - m_data.reset ( ); - } }; template < class ReturnType > @@ -267,7 +251,7 @@ protected: public: template < typename ... ParamTypes, typename Callable > inline void run_helper ( Callable callback, const ext::array < std::pair < std::shared_ptr < OperationAbstraction >, bool >, sizeof ... ( ParamTypes ) > & inputs ) { - if ( ! cached ( ) ) + if ( ! evaluated ( ) ) setData ( abstraction::apply < ParamTypes ... > ( callback, inputs ) ); } @@ -279,13 +263,9 @@ public: return abstraction::ParamQualifiers::paramQualifiers < ReturnType && > ( ); } - bool cached ( ) const override { + bool evaluated ( ) const override { return ( bool ) m_data; } - - void reset ( ) override { - m_data.reset ( ); - } }; template < class ReturnType > @@ -320,7 +300,7 @@ protected: public: template < typename ... ParamTypes, typename Callable > inline void run_helper ( Callable callback, const ext::array < std::pair < std::shared_ptr < OperationAbstraction >, bool >, sizeof ... ( ParamTypes ) > & inputs ) { - if ( ! cached ( ) ) + if ( ! evaluated ( ) ) setData ( abstraction::apply < ParamTypes ... > ( callback, inputs ) ); } @@ -332,13 +312,9 @@ public: return abstraction::ParamQualifiers::paramQualifiers < const ReturnType && > ( ); } - bool cached ( ) const override { + bool evaluated ( ) const override { return ( bool ) m_data; } - - void reset ( ) override { - m_data.reset ( ); - } }; template < > @@ -357,12 +333,9 @@ public: return abstraction::ParamQualifiers::paramQualifiers < void > ( ); } - bool cached ( ) const override { + bool evaluated ( ) const override { return false; } - - void reset ( ) override { - } }; } /* namespace abstraction */ diff --git a/alib2abstraction/src/abstraction/WrapperAbstraction.hpp b/alib2abstraction/src/abstraction/WrapperAbstraction.hpp index 96fdb0cc14..65896fedb6 100644 --- a/alib2abstraction/src/abstraction/WrapperAbstraction.hpp +++ b/alib2abstraction/src/abstraction/WrapperAbstraction.hpp @@ -93,7 +93,7 @@ public: if ( ! inputsAttached ( ) ) return false; - if ( this->cached ( ) ) + if ( this->evaluated ( ) ) return true; for ( const std::pair < std::shared_ptr < OperationAbstraction >, bool > & param : m_params ) @@ -107,12 +107,8 @@ public: return sizeof ... ( ParamTypes ); } - bool cached ( ) const override { - return ( bool ) m_abstraction && m_abstraction->cached ( ); - } - - void reset ( ) override { - m_abstraction = nullptr; + bool evaluated ( ) const override { + return ( bool ) m_abstraction && m_abstraction->evaluated ( ); } ext::type_index getParamTypeIndex ( size_t index ) const override { @@ -124,7 +120,7 @@ public: } std::shared_ptr < abstraction::OperationAbstraction > getProxyAbstraction ( ) override { - if ( this->cached ( ) ) + if ( this->evaluated ( ) ) return this->m_abstraction->getProxyAbstraction ( ); else throw std::domain_error ( "Proxy abstraction not avaiable before evaluation." ); @@ -174,14 +170,14 @@ public: } ext::type_index getReturnTypeIndex ( ) const override { - if ( this->cached ( ) ) + if ( this->evaluated ( ) ) return this->getAbstraction ( )->getProxyAbstraction ( )->getReturnTypeIndex ( ); else throw std::domain_error ( "Return type unknown before evaluation." ); } ext::set < abstraction::ParamQualifiers::ParamQualifier > getReturnTypeQualifiers ( ) const override { - if ( this->cached ( ) ) + if ( this->evaluated ( ) ) return this->getAbstraction ( )->getProxyAbstraction ( )->getReturnTypeQualifiers ( ); else throw std::domain_error ( "Return type qualifiers unknown before evaluation." ); -- GitLab