26 #include "ns3/nstime.h" 
   65   res = sqlite3_get_table (
m_db,
 
   67                            &result, &nrows, &ncols,
 
   70   if (res != SQLITE_OK) {
 
   93   sqlite3_free_table (result);
 
  105   if (sqlite3_open (m_dbFile.c_str (), &
m_db)) {
 
  106       NS_LOG_ERROR (
"Could not open sqlite3 database \"" << m_dbFile << 
"\"");
 
  108       sqlite3_close (
m_db);
 
  115   Exec (
"create table if not exists Experiments (run, experiment, strategy, input, description text)");
 
  116   Exec (
"insert into Experiments (run,experiment,strategy,input,description) values ('" +
 
  123   Exec (
"create table if not exists Metadata ( run text, key text, value)");
 
  127       std::pair<std::string, std::string> blob = (*i);
 
  128       Exec (
"insert into Metadata (run,key,value) values ('" +
 
  130             blob.first + 
"', '" +
 
  138       (*i)->Output (callback);
 
  142   sqlite3_close (
m_db);
 
  153   m_owner->Exec (
"create table if not exists Singletons ( run text, name text, variable text, value )");
 
  160                                                          std::string variable,
 
  179                                                          std::string variable,
 
  183   std::stringstream sstr;
 
  184   sstr << 
"insert into Singletons (run,name,variable,value) values ('" <<
 
  185   m_runLabel << 
"', '" <<
 
  189   m_owner->Exec (sstr.str ());
 
  195                                                          std::string variable,
 
  198   std::stringstream sstr;
 
  199   sstr << 
"insert into Singletons (run,name,variable,value) values ('" <<
 
  200   m_runLabel << 
"', '" <<
 
  204   m_owner->Exec (sstr.str ());
 
  209                                                          std::string variable,
 
  212   std::stringstream sstr;
 
  213   sstr << 
"insert into Singletons (run,name,variable,value) values ('" <<
 
  214   m_runLabel << 
"', '" <<
 
  218   m_owner->Exec (sstr.str ());
 
  223                                                          std::string variable,
 
  226   std::stringstream sstr;
 
  227   sstr << 
"insert into Singletons (run,name,variable,value) values ('" <<
 
  228   m_runLabel << 
"', '" <<
 
  230   variable << 
"', '" <<
 
  232   m_owner->Exec (sstr.str ());
 
  237                                                          std::string variable,
 
  240   std::stringstream sstr;
 
  241   sstr << 
"insert into Singletons (run,name,variable,value) values ('" <<
 
  242   m_runLabel << 
"', '" <<
 
  246   m_owner->Exec (sstr.str ());
 
DataCalculatorList::iterator DataCalculatorEnd()
 
keep track of time values and allow control of global simulation resolution 
 
smart pointer class similar to boost::intrusive_ptr 
 
virtual double getMin() const =0
 
virtual ~SqliteDataOutput()
 
virtual double getSqrSum() const =0
 
std::string GetRunLabel() const 
 
#define NS_LOG_FUNCTION_NOARGS()
 
virtual double getStddev() const =0
 
MetadataList::iterator MetadataBegin()
 
virtual double getMax() const =0
 
std::string GetStrategyLabel() const 
 
std::string GetExperimentLabel() const 
 
SqliteOutputCallback(Ptr< SqliteDataOutput > owner, std::string run)
 
int64_t GetTimeStep(void) const 
 
virtual double getSum() const =0
 
NS_LOG_COMPONENT_DEFINE("PacketLossCounter")
 
void OutputSingleton(std::string key, std::string variable, int val)
 
std::string GetDescription() const 
 
DataCalculatorList::iterator DataCalculatorBegin()
 
#define NS_LOG_ERROR(msg)
 
void OutputStatistic(std::string key, std::string variable, const StatisticalSummary *statSum)
 
std::string GetInputLabel() const 
 
int Exec(std::string exe)
 
virtual long getCount() const =0
 
virtual void Output(DataCollector &dc)
 
MetadataList::iterator MetadataEnd()