]> 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 6cc14ad609bc0f6daa3c4ea1ee7c88aa551abb45..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,19 +69,25 @@ public:
        Path operator/(const Path &p) const;
        Path &operator/=(const 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 &);
-
-       /** Adds a component to the path.  It must not contain the directory
-       separator character. */
-       void add_component(const std::string &);
 };
 
 inline std::ostream &operator<<(std::ostream &o, const Path &p) { o<<p.str(); return o; }