Marsyas  0.5.0-beta1
/Users/jleben/code/marsyas/src/marsyas/expr/ExCommon.cpp
Go to the documentation of this file.
00001 #include <marsyas/expr/ExCommon.h>
00002 
00003 using namespace Marsyas;
00004 
00005 unsigned int
00006 ex_string_to_typeid(std::string tp)
00007 {
00008   if (tp=="mrs_unit") return ExT_mrs_unit;
00009   if (tp=="mrs_bool") return ExT_mrs_bool;
00010   if (tp=="mrs_natural") return ExT_mrs_natural;
00011   if (tp=="mrs_real") return ExT_mrs_real;
00012   if (tp=="mrs_string") return ExT_mrs_string;
00013   if (tp=="mrs_timer") return ExT_mrs_timer;
00014   if (tp=="mrs_scheduler") return ExT_mrs_scheduler;
00015   return 0;
00016 }
00017 
00018 std::string
00019 ex_typeid_to_string(unsigned int tp)
00020 {
00021   if (tp==ExT_mrs_unit) return "mrs_unit";
00022   if (tp==ExT_mrs_bool) return "mrs_bool";
00023   if (tp==ExT_mrs_natural) return "mrs_natural";
00024   if (tp==ExT_mrs_real) return "mrs_real";
00025   if (tp==ExT_mrs_string) return "mrs_string";
00026   if (tp==ExT_mrs_timer) return "mrs_timer";
00027   if (tp==ExT_mrs_scheduler) return "mrs_scheduler";
00028   return 0;
00029 }
00030 
00031 std::string
00032 Marsyas::dtos(double d)
00033 {
00034   std::ostringstream oss;
00035   oss << d;
00036   return oss.str();
00037 
00038 }
00039 
00040 std::string
00041 Marsyas::dtos(float d)
00042 {
00043   std::ostringstream oss;
00044   oss << d;
00045   return oss.str();
00046 }
00047 
00048 std::string
00049 Marsyas::ltos(mrs_natural l)
00050 {
00051   std::ostringstream oss;
00052   oss << l;
00053   return oss.str();
00054 }
00055 
00056 std::string
00057 Marsyas::btos(mrs_bool b)
00058 {
00059   return (b) ? "true" : "false";
00060 }
00061 
00062 mrs_natural
00063 Marsyas::stol(std::string n)
00064 {
00065   long num=0; unsigned int i=0; bool neg=false;
00066   if (n[0]=='-') { neg=true; i=1; }
00067   for (; i<n.length(); ++i) {
00068     num = (num*10) + (n[i] - '0');
00069   }
00070   return (neg) ? -num : num;
00071 }
00072