From c0b889e7e71333e2b97d84de24f07ff8b8dddd3c Mon Sep 17 00:00:00 2001 From: Matej Sekoranja Date: Wed, 10 Oct 2012 18:16:43 +0200 Subject: [PATCH] unified output to caget --- testApp/remote/pvget.cpp | 41 ++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/testApp/remote/pvget.cpp b/testApp/remote/pvget.cpp index 01f0688..98a3dae 100644 --- a/testApp/remote/pvget.cpp +++ b/testApp/remote/pvget.cpp @@ -135,9 +135,11 @@ class ChannelGetRequesterImpl : public ChannelGetRequester } if (fieldSeparator == ' ' && value->getField()->getType() == scalar) - std::cout << std::setw(31) << std::left << m_channelName; + std::cout << std::setw(30) << std::left << m_channelName; else - std::cout << m_channelName << fieldSeparator; + std::cout << m_channelName; + + std::cout << fieldSeparator; terse(std::cout, value) << std::endl; } @@ -222,13 +224,40 @@ class MonitorRequesterImpl : public MonitorRequester MonitorElement::shared_pointer element; while (element = monitor->poll()) { - std::cout << m_channelName << ": "; + if (mode == ValueOnlyMode) + { + PVField::shared_pointer value = element->pvStructurePtr->getSubField("value"); + if (value.get() == 0) + { + std::cerr << "no 'value' field" << std::endl; + return; + } + + if (fieldSeparator == ' ' && value->getField()->getType() == scalar) + std::cout << std::setw(30) << std::left << m_channelName; + else + std::cout << m_channelName; + + std::cout << fieldSeparator; + + terse(std::cout, value) << std::endl; + } + else if (mode == TerseMode) + { + if (fieldSeparator == ' ') + std::cout << std::setw(30) << std::left << m_channelName; + else + std::cout << m_channelName; + + std::cout << fieldSeparator; - // TODO value only mode !!! - if (mode == TerseMode) terseStructure(std::cout, element->pvStructurePtr) << std::endl; + } else - std::cout << *(element->pvStructurePtr.get()) << std::endl; + { + std::cout << m_channelName << std::endl; + std::cout << *(element->pvStructurePtr.get()) << std::endl << std::endl; + } monitor->release(element); }