From bc30f4c840dea5030b4c0be396c64ed87d00621e Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 13 Apr 2020 08:00:46 -0700 Subject: [PATCH] add Value::ifMarked() --- src/data.cpp | 8 ++++++++ src/pvxs/data.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/data.cpp b/src/data.cpp index 8a389a4..e1de3e4 100644 --- a/src/data.cpp +++ b/src/data.cpp @@ -209,6 +209,14 @@ bool Value::isMarked(bool parents, bool children) const return false; } +Value Value::ifMarked(bool parents, bool children) const +{ + Value ret; + if(isMarked(parents, children)) + ret = *this; + return ret; +} + void Value::mark(bool v) { if(!desc) diff --git a/src/pvxs/data.h b/src/pvxs/data.h index b94dcee..0122257 100644 --- a/src/pvxs/data.h +++ b/src/pvxs/data.h @@ -508,6 +508,8 @@ public: //! Test if this field is marked as valid/changed bool isMarked(bool parents=true, bool children=false) const; + //! return *this if isMarked()==true, or a !valid() ref. if false. + Value ifMarked(bool parents=true, bool children=false) const; //! Mark this field as valid/changed void mark(bool v=true); //! Remove mark from this field