Marsyas
0.6.0-alpha
|
00001 /* 00002 ** Copyright (C) 1998-2013 George Tzanetakis <gtzan@cs.uvic.ca> 00003 ** 00004 ** This program is free software; you can redistribute it and/or modify 00005 ** it under the terms of the GNU General Public License as published by 00006 ** the Free Software Foundation; either version 2 of the License, or 00007 ** (at your option) any later version. 00008 ** 00009 ** This program is distributed in the hope that it will be useful, 00010 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 ** GNU General Public License for more details. 00013 ** 00014 ** You should have received a copy of the GNU General Public License 00015 ** along with this program; if not, write to the Free Software 00016 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 */ 00018 00019 #ifndef MARSYAS_DEBUG_RECORD_INCLUDED 00020 #define MARSYAS_DEBUG_RECORD_INCLUDED 00021 00022 #include <marsyas/realvec.h> 00023 #include <marsyas/export.h> 00024 00025 #include <map> 00026 #include <string> 00027 00028 namespace Marsyas { namespace Debug { 00029 00030 class marsyas_EXPORT Record 00031 { 00032 public: 00033 struct Entry 00034 { 00035 Entry() {} 00036 Entry( const realvec & input, const realvec & output, 00037 double cpu_time, double real_time ): 00038 input(input), 00039 output(output), 00040 cpu_time(cpu_time), 00041 real_time(real_time) 00042 {} 00043 00044 realvec input; 00045 realvec output; 00046 double cpu_time; 00047 double real_time; 00048 }; 00049 00050 typedef std::map<std::string, Entry> EntryMap; 00051 00052 const EntryMap & entries() const { return m_entries; } 00053 00054 void insert( const std::string & path, const Entry & entry ) 00055 { 00056 m_entries[path] = entry; 00057 } 00058 00059 const Entry * entry( const std::string & path ) const 00060 { 00061 const auto & entry = m_entries.find(path); 00062 if (entry != m_entries.end()) 00063 return &entry->second; 00064 else 00065 return 0; 00066 } 00067 00068 void clear() { m_entries.clear(); } 00069 00070 private: 00071 EntryMap m_entries; 00072 }; 00073 00074 }} // namespace Marsyas::Debug 00075 00076 #endif // MARSYAS_DEBUG_RECORD_INCLUDED