00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef NEWNET_PATH_H
00021 #define NEWNET_PATH_H
00022
00023 #include <string>
00024 #include <vector>
00025 #include "nnobject.h"
00026
00027 namespace NewNet
00028 {
00030
00032 class Path
00033 {
00034 public:
00036
00037 Path()
00038 {
00039 }
00040
00042
00043 Path(const std::string & path) : m_Path(path)
00044 {
00045 }
00046
00048
00049 Path(const std::vector<std::string> & path);
00050
00052 const std::string & path() const
00053 {
00054 return m_Path;
00055 }
00056
00058
00059 static char seperator()
00060 {
00061 #ifndef WIN32
00062 return '/';
00063 #else
00064 return '\\';
00065 #endif // ! WIN32
00066 }
00067
00069
00070 bool isAbsolute() const;
00071
00073
00074 std::vector<std::string> split() const;
00075
00077
00079 Path simplified() const;
00080
00082
00085 Path absolute(const std::string & base = std::string()) const;
00086
00088
00089 static Path currentDir();
00090
00091 private:
00092 std::string m_Path;
00093 };
00094 }
00095
00096 #endif // NEWNET_PATH_H