• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2018 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef BENCH_GL_FILES_PATH_H_
6 #define BENCH_GL_FILES_PATH_H_
7 
8 #include <iostream>
9 
10 class FilePath {
11  public:
FilePath()12   FilePath() { this->path_ = std::string(""); }
FilePath(const FilePath & that)13   FilePath(const FilePath& that) { this->path_ = that.path_; }
FilePath(std::string path)14   FilePath(std::string path) { this->path_ = path; }
FilePath(const char * path)15   FilePath(const char* path) { this->path_ = path; }
16   ~FilePath() = default;
17 
18   FilePath DirName();
19   const std::string& value() const;
20   bool IsSeparator(char character);
21   FilePath Append(const FilePath& path);
22   void StripTrailingSeparatorsInternal();
23 
24  private:
25   std::string path_;
26   char kStringTerminator = '\0';
27   char kSeparators[2] = "/";
28   char kCurrentDirectory[2] = ".";
29 };
30 bool CreateDirectory(FilePath&);
31 std::string::size_type FindDriveLetter(std::string path);
32 
33 #endif  // BENCH_GL_FILES_PATH_H_