From 51795036738d4e656bf75e294c9677323dc7ec64 Mon Sep 17 00:00:00 2001 From: "Peter D. Barnes, Jr." Date: Wed, 21 Sep 2016 14:13:18 -0700 Subject: [PATCH] Add logging to ConfigStore and RawTextConfig --- src/config-store/model/config-store.cc | 34 +++++++++++++++++++++++ src/config-store/model/config-store.h | 8 ++++++ src/config-store/model/raw-text-config.cc | 15 ++++++++++ 3 files changed, 57 insertions(+) diff --git a/src/config-store/model/config-store.cc b/src/config-store/model/config-store.cc index da31e5899..ab500a7b6 100644 --- a/src/config-store/model/config-store.cc +++ b/src/config-store/model/config-store.cc @@ -80,6 +80,7 @@ ConfigStore::GetInstanceTypeId (void) const ConfigStore::ConfigStore () { + NS_LOG_FUNCTION (this); ObjectBase::ConstructSelf (AttributeConstructionList ()); #ifdef HAVE_LIBXML2 @@ -128,10 +129,14 @@ ConfigStore::ConfigStore () } } m_file->SetFilename (m_filename); + NS_LOG_FUNCTION (this << ": format: " << m_fileFormat + << ", mode: " << m_mode + << ", file name: " << m_filename); } ConfigStore::~ConfigStore () { + NS_LOG_FUNCTION (this); delete m_file; m_file = 0; } @@ -139,30 +144,59 @@ ConfigStore::~ConfigStore () void ConfigStore::SetMode (enum Mode mode) { + NS_LOG_FUNCTION (this << mode); m_mode = mode; } void ConfigStore::SetFileFormat (enum FileFormat format) { + NS_LOG_FUNCTION (this << format); m_fileFormat = format; } void ConfigStore::SetFilename (std::string filename) { + NS_LOG_FUNCTION (this << filename); m_filename = filename; } void ConfigStore::ConfigureAttributes (void) { + NS_LOG_FUNCTION (this); m_file->Attributes (); } void ConfigStore::ConfigureDefaults (void) { + NS_LOG_FUNCTION (this); m_file->Default (); m_file->Global (); } +std::ostream & +operator << (std::ostream & os, ConfigStore::Mode & mode) +{ + switch (mode) + { + case ConfigStore::LOAD: os << "LOAD"; break; + case ConfigStore::SAVE: os << "SAVE"; break; + case ConfigStore::NONE: os << "NONE"; break; + default: os << "UNKNOWN"; + } + return os; +} + +std::ostream & +operator << (std::ostream & os, ConfigStore::FileFormat & format) +{ + switch (format) + { + case ConfigStore::XML: os << "XML"; break; + case ConfigStore::RAW_TEXT: os << "RAW_TEXT"; break; + } + return os; +} + } // namespace ns3 diff --git a/src/config-store/model/config-store.h b/src/config-store/model/config-store.h index c5f3c2904..7ebba977d 100644 --- a/src/config-store/model/config-store.h +++ b/src/config-store/model/config-store.h @@ -83,6 +83,14 @@ private: FileConfig *m_file; }; +/** + * @{ + * \ingroup configstore + */ +std::ostream & operator << (std::ostream & os, ConfigStore::Mode & mode); +std::ostream & operator << (std::ostream & os, ConfigStore::FileFormat & format); +/**@}*/ + } // namespace ns3 #endif /* CONFIG_STORE_H */ diff --git a/src/config-store/model/raw-text-config.cc b/src/config-store/model/raw-text-config.cc index e85887480..8aa4b1dab 100644 --- a/src/config-store/model/raw-text-config.cc +++ b/src/config-store/model/raw-text-config.cc @@ -33,9 +33,11 @@ NS_LOG_COMPONENT_DEFINE ("RawTextConfig"); RawTextConfigSave::RawTextConfigSave () : m_os (0) { + NS_LOG_FUNCTION (this); } RawTextConfigSave::~RawTextConfigSave () { + NS_LOG_FUNCTION (this); if (m_os != 0) { m_os->close (); @@ -46,12 +48,14 @@ RawTextConfigSave::~RawTextConfigSave () void RawTextConfigSave::SetFilename (std::string filename) { + NS_LOG_FUNCTION (this << filename); m_os = new std::ofstream (); m_os->open (filename.c_str (), std::ios::out); } void RawTextConfigSave::Default (void) { + NS_LOG_FUNCTION (this); class RawTextDefaultIterator : public AttributeDefaultIterator { public: @@ -63,6 +67,7 @@ private: m_typeId = name; } virtual void DoVisitAttribute (std::string name, std::string defaultValue) { + NS_LOG_DEBUG ("Saving " << m_typeId << "::" << name); *m_os << "default " << m_typeId << "::" << name << " \"" << defaultValue << "\"" << std::endl; } std::string m_typeId; @@ -75,16 +80,19 @@ private: void RawTextConfigSave::Global (void) { + NS_LOG_FUNCTION (this); for (GlobalValue::Iterator i = GlobalValue::Begin (); i != GlobalValue::End (); ++i) { StringValue value; (*i)->GetValue (value); + NS_LOG_LOGIC ("Saving " << (*i)->GetName ()); *m_os << "global " << (*i)->GetName () << " \"" << value.Get () << "\"" << std::endl; } } void RawTextConfigSave::Attributes (void) { + NS_LOG_FUNCTION (this); class RawTextAttributeIterator : public AttributeIterator { public: @@ -94,6 +102,7 @@ private: virtual void DoVisitAttribute (Ptr object, std::string name) { StringValue str; object->GetAttribute (name, str); + NS_LOG_DEBUG ("Saving " << GetCurrentPath ()); *m_os << "value " << GetCurrentPath () << " \"" << str.Get () << "\"" << std::endl; } std::ostream *m_os; @@ -106,9 +115,11 @@ private: RawTextConfigLoad::RawTextConfigLoad () : m_is (0) { + NS_LOG_FUNCTION (this); } RawTextConfigLoad::~RawTextConfigLoad () { + NS_LOG_FUNCTION (this); if (m_is != 0) { m_is->close (); @@ -119,6 +130,7 @@ RawTextConfigLoad::~RawTextConfigLoad () void RawTextConfigLoad::SetFilename (std::string filename) { + NS_LOG_FUNCTION (this << filename); m_is = new std::ifstream (); m_is->open (filename.c_str (), std::ios::in); } @@ -135,6 +147,7 @@ RawTextConfigLoad::Strip (std::string value) void RawTextConfigLoad::Default (void) { + NS_LOG_FUNCTION (this); m_is->clear (); m_is->seekg (0); std::string type, name, value; @@ -153,6 +166,7 @@ RawTextConfigLoad::Default (void) void RawTextConfigLoad::Global (void) { + NS_LOG_FUNCTION (this); m_is->clear (); m_is->seekg (0); std::string type, name, value; @@ -171,6 +185,7 @@ RawTextConfigLoad::Global (void) void RawTextConfigLoad::Attributes (void) { + NS_LOG_FUNCTION (this); m_is->seekg (0); std::string type, path, value; *m_is >> type >> path >> value;