pvtools: combine separator and fieldSeparator

both always have the same value anyway...
This commit is contained in:
Michael Davidsaver
2018-04-24 08:33:25 -07:00
parent 9c25057d80
commit 1adea89e77
6 changed files with 31 additions and 46 deletions

View File

@ -36,8 +36,6 @@ using namespace epics::pvAccess;
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode }; enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
PrintMode mode = ValueOnlyMode; PrintMode mode = ValueOnlyMode;
char fieldSeparator = ' ';
bool columnMajor = false; bool columnMajor = false;
bool transpose = false; bool transpose = false;
@ -242,7 +240,7 @@ void formatTable(std::ostream& o,
{ {
for (size_t i = 0; i < numColumns; i++) for (size_t i = 0; i < numColumns; i++)
{ {
if (separator == ' ') if (fieldSeparator == ' ')
{ {
int width = std::max(labels[i].size()+padding, maxColumnLength); int width = std::max(labels[i].size()+padding, maxColumnLength);
o << std::setw(width) << std::right; o << std::setw(width) << std::right;
@ -250,7 +248,7 @@ void formatTable(std::ostream& o,
} }
else if (i > 0) else if (i > 0)
{ {
o << separator; o << fieldSeparator;
} }
o << labels[i]; o << labels[i];
@ -263,7 +261,7 @@ void formatTable(std::ostream& o,
{ {
for (size_t i = 0; i < numColumns; i++) for (size_t i = 0; i < numColumns; i++)
{ {
if (separator == ' ' && (showHeader || numColumns > 1)) if (fieldSeparator == ' ' && (showHeader || numColumns > 1))
{ {
int width = std::max(labels[i].size()+padding, maxColumnLength); int width = std::max(labels[i].size()+padding, maxColumnLength);
o << setw(width) << std::right; o << setw(width) << std::right;
@ -271,7 +269,7 @@ void formatTable(std::ostream& o,
} }
else if (i > 0) else if (i > 0)
{ {
o << separator; o << fieldSeparator;
} }
PVScalarArrayPtr array = columnData[i]; PVScalarArrayPtr array = columnData[i];
@ -297,7 +295,7 @@ void formatTable(std::ostream& o,
{ {
if (showHeader && labels.size()) if (showHeader && labels.size())
{ {
if (separator == ' ') if (fieldSeparator == ' ')
{ {
o << std::setw(maxLabelColumnLength) << std::left; o << std::setw(maxLabelColumnLength) << std::left;
} }
@ -306,12 +304,12 @@ void formatTable(std::ostream& o,
for (size_t r = 0; r < maxValues; r++) for (size_t r = 0; r < maxValues; r++)
{ {
if (separator == ' ' && (showHeader || numColumns > 1)) if (fieldSeparator == ' ' && (showHeader || numColumns > 1))
{ {
o << std::setw(maxColumnLength) << std::right; o << std::setw(maxColumnLength) << std::right;
} }
else if (showHeader || r > 0) else if (showHeader || r > 0)
o << separator; o << fieldSeparator;
PVScalarArrayPtr array = columnData[i]; PVScalarArrayPtr array = columnData[i];
if (array.get() && r < array->getLength()) if (array.get() && r < array->getLength())
@ -433,10 +431,10 @@ void formatNTMatrix(std::ostream& o, PVStructurePtr const & pvStruct)
{ {
for (int32 c = 0; c < cols; c++) for (int32 c = 0; c < cols; c++)
{ {
if (separator == ' ' && cols > 1) if (fieldSeparator == ' ' && cols > 1)
o << std::setw(maxColumnLength) << std::right; o << std::setw(maxColumnLength) << std::right;
else if (c > 0) else if (c > 0)
o << separator; o << fieldSeparator;
if (columnMajor) if (columnMajor)
value->dumpValue(o, r + c * rows); value->dumpValue(o, r + c * rows);
@ -459,10 +457,10 @@ void formatNTMatrix(std::ostream& o, PVStructurePtr const & pvStruct)
{ {
for (int32 r = 0; r < rows; r++) for (int32 r = 0; r < rows; r++)
{ {
if (separator == ' ' && rows > 1) if (fieldSeparator == ' ' && rows > 1)
o << std::setw(maxColumnLength) << std::right; o << std::setw(maxColumnLength) << std::right;
else if (r > 0) else if (r > 0)
o << separator; o << fieldSeparator;
if (columnMajor) if (columnMajor)
value->dumpValue(o, ix++); value->dumpValue(o, ix++);
@ -540,7 +538,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
{ {
for (size_t i = 0; i < numColumns; i++) for (size_t i = 0; i < numColumns; i++)
{ {
if (separator == ' ') if (fieldSeparator == ' ')
{ {
int width = std::max(nameData[i].size()+padding, maxColumnLength); int width = std::max(nameData[i].size()+padding, maxColumnLength);
o << std::setw(width) << std::right; o << std::setw(width) << std::right;
@ -548,7 +546,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
} }
else if (i > 0) else if (i > 0)
{ {
o << separator; o << fieldSeparator;
} }
o << nameData[i]; o << nameData[i];
@ -559,7 +557,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
// then values // then values
for (size_t i = 0; i < numColumns; i++) for (size_t i = 0; i < numColumns; i++)
{ {
if (separator == ' ' && showHeader) if (fieldSeparator == ' ' && showHeader)
{ {
int width = std::max(nameData[i].size()+padding, maxColumnLength); int width = std::max(nameData[i].size()+padding, maxColumnLength);
o << std::setw(width) << std::right; o << std::setw(width) << std::right;
@ -567,7 +565,7 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
} }
else if (i > 0) else if (i > 0)
{ {
o << separator; o << fieldSeparator;
} }
array->dumpValue(o, i); array->dumpValue(o, i);
} }
@ -586,20 +584,20 @@ void formatNTNameValue(std::ostream& o, PVStructurePtr const & pvStruct)
{ {
if (showHeader) if (showHeader)
{ {
if (separator == ' ') if (fieldSeparator == ' ')
{ {
o << std::setw(maxLabelColumnLength) << std::left; o << std::setw(maxLabelColumnLength) << std::left;
} }
o << nameData[i]; o << nameData[i];
} }
if (separator == ' ' && showHeader) if (fieldSeparator == ' ' && showHeader)
{ {
o << std::setw(maxColumnLength) << std::right; o << std::setw(maxColumnLength) << std::right;
} }
else if (showHeader) else if (showHeader)
{ {
o << separator; o << fieldSeparator;
} }
array->dumpValue(o, i); array->dumpValue(o, i);
@ -899,7 +897,7 @@ void printValue(std::string const & channelName, PVStructure::shared_pointer con
if (forceTerseWithName) if (forceTerseWithName)
{ {
if (!channelName.empty()) if (!channelName.empty())
std::cout << channelName << separator; std::cout << channelName << fieldSeparator;
terseStructure(std::cout, pv) << std::endl; terseStructure(std::cout, pv) << std::endl;
} }
else if (mode == ValueOnlyMode) else if (mode == ValueOnlyMode)
@ -1044,7 +1042,7 @@ void usage (void)
" -p <provider>: Set default provider name, default is '%s'\n" " -p <provider>: Set default provider name, default is '%s'\n"
" -q: Quiet mode, print only error messages\n" " -q: Quiet mode, print only error messages\n"
" -d: Enable debug output\n" " -d: Enable debug output\n"
" -F <ofs>: Use <ofs> as an alternate output field separator\n" " -F <ofs>: Use <ofs> as an alternate output field fieldSeparator\n"
" -f <input file>: Use <input file> as an input that provides a list PV name(s) to be read, use '-' for stdin\n" " -f <input file>: Use <input file> as an input that provides a list PV name(s) to be read, use '-' for stdin\n"
" -c: Wait for clean shutdown and report used instance count (for expert users)\n" " -c: Wait for clean shutdown and report used instance count (for expert users)\n"
" enum format:\n" " enum format:\n"
@ -1525,7 +1523,6 @@ int main (int argc, char *argv[])
SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError); SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError);
std::cout << std::boolalpha; std::cout << std::boolalpha;
terseSeparator(fieldSeparator);
arrayCountFlag = false; arrayCountFlag = false;
bool allOK = true; bool allOK = true;

View File

@ -48,8 +48,6 @@ string defaultProvider("pva");
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode }; enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
PrintMode mode = ValueOnlyMode; PrintMode mode = ValueOnlyMode;
char fieldSeparator = ' ';
void usage (void) void usage (void)
{ {
fprintf (stderr, "\nUsage: pvget [options] <PV name>...\n\n" fprintf (stderr, "\nUsage: pvget [options] <PV name>...\n\n"
@ -531,7 +529,6 @@ int main (int argc, char *argv[])
SET_LOG_LEVEL(debugFlag ? logLevelDebug : logLevelError); SET_LOG_LEVEL(debugFlag ? logLevelDebug : logLevelError);
std::cout << std::boolalpha; std::cout << std::boolalpha;
terseSeparator(fieldSeparator);
// ================ Connect channels and start operations // ================ Connect channels and start operations

View File

@ -490,7 +490,6 @@ int main (int argc, char *argv[])
int opt; /* getopt() current option */ int opt; /* getopt() current option */
bool debug = false; bool debug = false;
double timeOut = DEFAULT_TIMEOUT; double timeOut = DEFAULT_TIMEOUT;
// char fieldSeparator = ' ';
bool printInfo = false; bool printInfo = false;
/* /*

View File

@ -51,8 +51,6 @@ const string noAddress;
enum PrintMode { ValueOnlyMode, StructureMode, TerseMode }; enum PrintMode { ValueOnlyMode, StructureMode, TerseMode };
PrintMode mode = ValueOnlyMode; PrintMode mode = ValueOnlyMode;
char fieldSeparator = ' ';
bool debug = false; bool debug = false;
void usage (bool details=false) void usage (bool details=false)
@ -609,7 +607,6 @@ int main (int argc, char *argv[])
SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError); SET_LOG_LEVEL(debug ? logLevelDebug : logLevelError);
std::cout << std::boolalpha; std::cout << std::boolalpha;
terseSeparator(fieldSeparator);
epics::pvAccess::ca::CAClientFactory::start(); epics::pvAccess::ca::CAClientFactory::start();

View File

@ -43,11 +43,7 @@ std::ostream& operator<<(std::ostream& o, const dump_stack_only_on_debug& d)
return o; return o;
} }
char separator = ' '; char fieldSeparator = ' ';
void terseSeparator(char c)
{
separator = c;
}
char arrayCountFlag = true; char arrayCountFlag = true;
@ -132,7 +128,7 @@ std::ostream& printTimeT(std::ostream& o, epics::pvData::PVStructure::const_shar
epicsTimeToStrftime(timeText, sizeof(timeText), "%Y-%m-%dT%H:%M:%S.%03f", &epicsTS); epicsTimeToStrftime(timeText, sizeof(timeText), "%Y-%m-%dT%H:%M:%S.%03f", &epicsTS);
o << timeText; o << timeText;
if (printUserTagFlag && tagf) if (printUserTagFlag && tagf)
o << separator << tagf->getAs<int32>(); o << fieldSeparator << tagf->getAs<int32>();
return o; return o;
} }
@ -175,14 +171,14 @@ std::ostream& printAlarmT(std::ostream& o, epics::pvData::PVStructure::const_sha
o << v; o << v;
else else
o << severityNames[v]; o << severityNames[v];
o << separator; o << fieldSeparator;
v = pvStatus->get(); v = pvStatus->get();
if (v < 0 || v > 7) if (v < 0 || v > 7)
o << v; o << v;
else else
o << statusNames[v]; o << statusNames[v];
o << separator; o << fieldSeparator;
if (pvMessage->get().empty()) if (pvMessage->get().empty())
o << "<no message>"; o << "<no message>";
else else
@ -249,7 +245,7 @@ std::ostream& terseStructure(std::ostream& o, PVStructure::const_shared_pointer
if (first) if (first)
first = false; first = false;
else else
o << separator; o << fieldSeparator;
terse(o, fieldsData[i]); terse(o, fieldsData[i]);
} }
@ -277,7 +273,7 @@ std::ostream& terseScalarArray(std::ostream& o, const PVScalarArray::const_share
o << '0'; o << '0';
return o; return o;
} }
o << length << separator; o << length << fieldSeparator;
} }
bool first = true; bool first = true;
@ -285,7 +281,7 @@ std::ostream& terseScalarArray(std::ostream& o, const PVScalarArray::const_share
if (first) if (first)
first = false; first = false;
else else
o << separator; o << fieldSeparator;
pvArray->dumpValue(o, i); pvArray->dumpValue(o, i);
} }
@ -308,7 +304,7 @@ std::ostream& terseStructureArray(std::ostream& o, PVStructureArray::const_share
o << '0'; o << '0';
return o; return o;
} }
o << length << separator; o << length << fieldSeparator;
} }
PVStructureArray::const_svector data = pvArray->view(); PVStructureArray::const_svector data = pvArray->view();
@ -317,7 +313,7 @@ std::ostream& terseStructureArray(std::ostream& o, PVStructureArray::const_share
if (first) if (first)
first = false; first = false;
else else
o << separator; o << fieldSeparator;
terseStructure(o, data[i]); terseStructure(o, data[i]);
} }
@ -334,7 +330,7 @@ std::ostream& terseUnionArray(std::ostream& o, PVUnionArray::const_shared_pointe
o << '0'; o << '0';
return o; return o;
} }
o << length << separator; o << length << fieldSeparator;
} }
PVUnionArray::const_svector data = pvArray->view(); PVUnionArray::const_svector data = pvArray->view();
@ -343,7 +339,7 @@ std::ostream& terseUnionArray(std::ostream& o, PVUnionArray::const_shared_pointe
if (first) if (first)
first = false; first = false;
else else
o << separator; o << fieldSeparator;
terseUnion(o, data[i]); terseUnion(o, data[i]);
} }

View File

@ -7,7 +7,6 @@ void convertStructure(std::string* buffer, epics::pvData::PVStructure *data, int
void convertArray(std::string*, epics::pvData::PVScalarArray * pv, int notFirst); void convertArray(std::string*, epics::pvData::PVScalarArray * pv, int notFirst);
void convertStructureArray(std::string*, epics::pvData::PVStructureArray * pvdata, int notFirst); void convertStructureArray(std::string*, epics::pvData::PVStructureArray * pvdata, int notFirst);
void terseSeparator(char c);
std::ostream& terse(std::ostream& o, epics::pvData::PVField::const_shared_pointer const & pv); std::ostream& terse(std::ostream& o, epics::pvData::PVField::const_shared_pointer const & pv);
std::ostream& terseUnion(std::ostream& o, epics::pvData::PVUnion::const_shared_pointer const & pvUnion); std::ostream& terseUnion(std::ostream& o, epics::pvData::PVUnion::const_shared_pointer const & pvUnion);
std::ostream& terseStructure(std::ostream& o, const epics::pvData::PVStructure::const_shared_pointer &pvStructure); std::ostream& terseStructure(std::ostream& o, const epics::pvData::PVStructure::const_shared_pointer &pvStructure);