From ed9a707f144688997618594a2d51a130e4ec6e49 Mon Sep 17 00:00:00 2001 From: Dave Hickin Date: Mon, 31 Aug 2015 23:50:51 +0100 Subject: [PATCH] More efficient implementation of NTTable Cache the value field. Allows simpler implementation of getColumn(). --- src/nt/nttable.cpp | 4 ++-- src/nt/nttable.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/nt/nttable.cpp b/src/nt/nttable.cpp index 5f9ab0b..1964aca 100644 --- a/src/nt/nttable.cpp +++ b/src/nt/nttable.cpp @@ -245,11 +245,11 @@ StringArray const & NTTable::getColumnNames() const PVFieldPtr NTTable::getColumn(std::string const & columnName) const { - return pvNTTable->getSubField("value." + columnName); + return pvValue->getSubField(columnName); } NTTable::NTTable(PVStructurePtr const & pvStructure) : - pvNTTable(pvStructure) + pvNTTable(pvStructure), pvValue(pvNTTable->getSubField("value")) {} diff --git a/src/nt/nttable.h b/src/nt/nttable.h index 683ec35..0f02cc5 100644 --- a/src/nt/nttable.h +++ b/src/nt/nttable.h @@ -288,6 +288,7 @@ public: private: NTTable(epics::pvData::PVStructurePtr const & pvStructure); epics::pvData::PVStructurePtr pvNTTable; + epics::pvData::PVStructurePtr pvValue; friend class detail::NTTableBuilder; };