Changeset 202 in pacpusframework for trunk/src/PacpusLib/ComponentBase.cpp
- Timestamp:
- Oct 29, 2013, 3:40:48 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/PacpusLib/ComponentBase.cpp
r201 r202 13 13 #include <boost/program_options/parsers.hpp> 14 14 #include <boost/program_options/variables_map.hpp> 15 #include <ostream> 15 16 #include <string> 16 17 #include <vector> 17 18 const bool kPropertyVerboseDefaultValue = false;19 18 20 19 namespace po = boost::program_options; … … 23 22 24 23 vector<string> convertAttributesToArgumentVector(const QDomNamedNodeMap & attributes); 25 void logVariablesMap(po::variables_map vm); 24 25 namespace std { 26 27 template <typename _Elem, typename _Traits> 28 std::basic_ostream<_Elem, _Traits> & operator<<(std::basic_ostream<_Elem, _Traits> & os, const boost::program_options::variables_map & vm) 29 { 30 for (po::variables_map::const_iterator i = vm.cbegin(); i != vm.cend(); ++i) { 31 const po::variable_value & v = i->second; 32 if (v.empty()) { 33 continue; 34 } 35 const type_info & type = v.value().type(); 36 if (type == typeid(string)) { 37 const string & val = v.as<string>(); 38 os << i->first << "=" << val; 39 } else if (type == typeid(long)) { 40 int val = v.as<long>(); 41 os << i->first << "=" << val; 42 } else if (type == typeid(int)) { 43 int val = v.as<int>(); 44 os << i->first << "=" << val; 45 } else if (type == typeid(unsigned long)) { 46 int val = v.as<unsigned long>(); 47 os << i->first << "=" << val; 48 } else if (type == typeid(unsigned int)) { 49 int val = v.as<unsigned int>(); 50 os << i->first << "=" << val; 51 } else if (type == typeid(double)) { 52 int val = v.as<double>(); 53 os << i->first << "=" << val; 54 } else if (type == typeid(float)) { 55 int val = v.as<float>(); 56 os << i->first << "=" << val; 57 } else if (type == typeid(bool)) { 58 int val = v.as<bool>(); 59 os << i->first << "=" << val; 60 } 61 } 62 return os; 63 } 64 65 } // namespace std 26 66 27 67 DECLARE_STATIC_LOGGER("pacpus.core.ComponentBase"); … … 225 265 } 226 266 227 logVariablesMap(vm); 228 } 229 230 void logVariablesMap(boost::program_options::variables_map vm) 231 { 232 for (po::variables_map::iterator i = vm.begin(); i != vm.end(); ++i) { 233 const po::variable_value& v = i->second; 234 if (v.empty()) { 235 continue; 236 } 237 const type_info & type = v.value().type(); 238 if (type == typeid(string)) { 239 const string & val = v.as<string>(); 240 LOG_INFO(i->first << "=" << val); 241 } else if (type == typeid(int)) { 242 int val = v.as<int>(); 243 LOG_INFO(i->first << "=" << val); 244 } else if (type == typeid(bool)) { 245 int val = v.as<bool>(); 246 LOG_INFO(i->first << "=" << val); 247 } 248 } 267 LOG_INFO(vm); 249 268 } 250 269
Note:
See TracChangeset
for help on using the changeset viewer.