- Implemented A::dump.
This commit is contained in:
Paul Beckingham 2014-10-15 00:35:46 -04:00
parent b98da56a7c
commit 87ece489db
2 changed files with 43 additions and 5 deletions

View file

@ -128,7 +128,7 @@ void A::attribute (const std::string& name, const double value)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Accessor for attributes. // Accessor for attributes.
std::string A::attribute (const std::string& name) const std::string A::attribute (const std::string& name)
{ {
// Prevent autovivification. // Prevent autovivification.
std::map<std::string, std::string>::iterator i = _attributes.find (name); std::map<std::string, std::string>::iterator i = _attributes.find (name);
@ -145,9 +145,47 @@ void A::removeAttribute (const std::string& name)
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
std::string A::dump () const std::string A::dump ()
{ {
return "A::dump"; std::string output = "";
// Dump attributes.
std::string atts;
std::map <std::string, std::string>::iterator a;
for (a = _attributes.begin (); a != _attributes.end (); ++a)
{
if (a != _attributes.begin ())
atts += " ";
atts += a->first + "='\033[33m" + a->second + "\033[0m'";
}
if (atts.length ())
output += " " + atts;
// Dump tags.
std::string tags;
std::vector <std::string>::iterator tag;
for (tag = _tags.begin (); tag != _tags.end (); ++tag)
{
if (tags.length ())
tags += ' ';
if (*tag == "BINARY") tags += "\033[1;37;44m" + *tag + "\033[0m";
else if (*tag == "CMD") tags += "\033[1;37;46m" + *tag + "\033[0m";
else if (*tag == "FILTER") tags += "\033[1;37;42m" + *tag + "\033[0m";
else if (*tag == "MODIFICATION") tags += "\033[1;37;43m" + *tag + "\033[0m";
else if (*tag == "RC") tags += "\033[1;37;41m" + *tag + "\033[0m";
else if (*tag == "CONFIG") tags += "\033[1;37;101m" + *tag + "\033[0m";
else if (*tag == "?") tags += "\033[38;5;255;48;5;232m" + *tag + "\033[0m";
else tags += "\033[32m" + *tag + "\033[0m";
}
if (tags.length ())
output += ' ' + tags;
output += "\n";
return output;
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View file

@ -44,9 +44,9 @@ public:
void attribute (const std::string&, const std::string&); void attribute (const std::string&, const std::string&);
void attribute (const std::string&, const int); void attribute (const std::string&, const int);
void attribute (const std::string&, const double); void attribute (const std::string&, const double);
std::string attribute (const std::string&); const std::string attribute (const std::string&);
void removeAttribute (const std::string&); void removeAttribute (const std::string&);
std::string dump (); const std::string dump ();
public: public:
std::string _name; std::string _name;