summaryrefslogtreecommitdiff
path: root/graphs/cpp/path/path.hh
diff options
context:
space:
mode:
Diffstat (limited to 'graphs/cpp/path/path.hh')
-rw-r--r--graphs/cpp/path/path.hh25
1 files changed, 25 insertions, 0 deletions
diff --git a/graphs/cpp/path/path.hh b/graphs/cpp/path/path.hh
new file mode 100644
index 0000000..0a09d05
--- /dev/null
+++ b/graphs/cpp/path/path.hh
@@ -0,0 +1,25 @@
+#pragma once
+
+#include <string>
+#include <vector>
+
+class Path
+{
+public:
+ Path() = default;
+ virtual ~Path() = default;
+
+ /*
+ ** Return the complete path as a string.
+ */
+ virtual std::string to_string() const = 0;
+
+ /*
+ ** Add a directory or a file at the end of the path.
+ */
+ virtual Path& join(const std::string& tail, bool is_file = false);
+
+protected:
+ std::vector<std::string> path_;
+ bool final_ = false;
+};