00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef daeUtils_h
00012 #define daeUtils_h
00013
00014 #include <string>
00015 #include <sstream>
00016 #include <list>
00017 #include <vector>
00018 #include <dae/daePlatform.h>
00019
00020 namespace cdom {
00021
00022 enum systemType {
00023 Posix,
00024 Windows
00025 };
00026
00027
00028 DLLSPEC systemType getSystemType();
00029
00030
00031 DLLSPEC std::string replace(const std::string& s,
00032 const std::string& replace,
00033 const std::string& replaceWith);
00034
00035
00036
00037
00038
00039
00040
00041
00042 DLLSPEC void trimWhitespaces(std::string& str);
00043
00044
00045
00046
00047 DLLSPEC std::list<std::string> tokenize(const std::string& s,
00048 const std::string& separators,
00049 bool separatorsInResult = false);
00050
00051 DLLSPEC void tokenize(const std::string& s,
00052 const std::string& separators,
00053 std::list<std::string>& tokens,
00054 bool separatorsInResult = false);
00055
00056 typedef std::list<std::string>::iterator tokenIter;
00057
00058 DLLSPEC std::vector<std::string> makeStringArray(const char* s, ...);
00059 DLLSPEC std::list<std::string> makeStringList(const char* s, ...);
00060
00061 DLLSPEC std::string getCurrentDir();
00062 DLLSPEC std::string getCurrentDirAsUri();
00063
00064
00065
00066
00067 DLLSPEC char getFileSeparator();
00068
00069 #ifndef NO_BOOST
00070
00071
00072 DLLSPEC const std::string& getSystemTmpDir();
00073
00074
00075
00076
00077 DLLSPEC std::string getRandomFileName();
00078
00079
00080
00081
00082 DLLSPEC const std::string& getSafeTmpDir();
00083 #endif //NO_BOOST
00084
00085 DLLSPEC int strcasecmp(const char* str1, const char* str2);
00086 DLLSPEC std::string tolower(const std::string& s);
00087
00088
00089 #ifdef _MSC_VER
00090 #pragma warning(push)
00091 #pragma warning(disable : 4267)
00092 #endif
00093 template<typename T>
00094 std::string toString(const T& val) {
00095 std::ostringstream stream;
00096 stream << val;
00097 return stream.str();
00098 }
00099 #ifdef _MSC_VER
00100 #pragma warning(pop)
00101 #endif
00102 }
00103
00104 #endif