]> git.tdb.fi Git - libs/core.git/blobdiff - source/fs/path.h
Add other comparison operators to FS::Path
[libs/core.git] / source / fs / path.h
index ed9cc7985b62d863f86a6bc19726de692791d077..c701e60f7fb97dbf507cf0295ea13adefb32aec1 100644 (file)
@@ -30,7 +30,7 @@ public:
 
        private:
                const Path &path;
-               std::string::size_type start,end;
+               std::string::size_type start, end;
 
                Iterator(const Path &);
        public:
@@ -48,7 +48,10 @@ public:
        Path();
        Path(const std::string &);
        Path(const char *);
+private:
+       void init(const std::string &);
 
+public:
        const std::string &str() const { return path; }
 
        /// Returns the number of components in the path.
@@ -66,18 +69,25 @@ public:
        Path operator/(const Path &p) const;
        Path &operator/=(const Path &);
 
-       /**
-       Extracts a single component from the path.  Negative indices count from the
-       end of the path.
-       */
+private:
+       /** Adds a component to the path.  It must not contain the directory
+       separator character. */
+       void add_component(const std::string &);
+
+public:
+       /** Extracts a single component from the path.  Negative indices count from
+       the end of the path. */
        std::string operator[](int) const;
 
        bool operator==(const Path &) const;
+       bool operator<(const Path &) const;
+       bool operator>(const Path &) const;
+       bool operator<=(const Path &other) const { return !(*this>other); }
+       bool operator>=(const Path &other) const { return !(*this<other); }
+       bool operator!=(const Path &other) const { return !(*this==other); }
+
        Iterator begin() const;
        Iterator end() const;
-private:
-       void init(const std::string &);
-       void add_component(const std::string &);
 };
 
 inline std::ostream &operator<<(std::ostream &o, const Path &p) { o<<p.str(); return o; }