From e8ed7b1d1b5bef31e9874f679a5797c2e00d06f1 Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Sat, 11 Oct 2014 15:02:23 -0500 Subject: ext: add the source code for DSENT This patch adds a tool called DSENT to the ext/ directory. DSENT is a tool that models power and area for on-chip networks. The next patch adds a script for using the tool. --- ext/dsent/libutil/Log.cc | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 ext/dsent/libutil/Log.cc (limited to 'ext/dsent/libutil/Log.cc') diff --git a/ext/dsent/libutil/Log.cc b/ext/dsent/libutil/Log.cc new file mode 100644 index 000000000..cb4266bf9 --- /dev/null +++ b/ext/dsent/libutil/Log.cc @@ -0,0 +1,86 @@ +#include "Log.h" + +#include "Assert.h" + +namespace LibUtil +{ + using std::ostream; + using std::endl; + + Log* Log::msSingleton = NULL; + const bool Log::msIsLog = LIBUTIL_IS_LOG; + + void Log::allocate(const String& log_file_name_) + { + if(msIsLog) + { + // Allocate static Config instance + ASSERT(!msSingleton, "Log singleton is allocated"); + msSingleton = new Log(log_file_name_); + } + } + + void Log::release() + { + if(msIsLog) + { + ASSERT(msSingleton, "Log singleton is not allocated"); + delete msSingleton; + msSingleton = NULL; + } + return; + } + + void Log::print(const String& str_) + { + if(msIsLog) + { + ASSERT(msSingleton, "Log singleton is not allocated"); + msSingleton->ofs << str_; + } + return; + } + + void Log::print(ostream& stream_, const String& str_) + { + if(msIsLog) + { + ASSERT(msSingleton, "Log singleton is not allocated"); + msSingleton->ofs << str_; + } + stream_ << str_; + return; + } + + void Log::printLine(const String& str_) + { + if(msIsLog) + { + ASSERT(msSingleton, "Log singleton is not allocated"); + msSingleton->ofs << str_ << endl; + } + return; + } + + void Log::printLine(ostream& stream_, const String& str_) + { + if(msIsLog) + { + ASSERT(msSingleton, "Log singleton is not allocated"); + msSingleton->ofs << str_ << endl; + } + stream_ << str_ << endl; + return; + } + + Log::Log(const String& log_file_name_) + { + ofs.open(log_file_name_.c_str()); + } + + Log::~Log() + { + ofs.close(); + } +} + -- cgit v1.2.3