• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Flutter 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 FLUTTER_FML_PATHS_H_
6 #define FLUTTER_FML_PATHS_H_
7 
8 #include <string>
9 #include <utility>
10 
11 #include "flutter/fml/unique_fd.h"
12 
13 namespace fml {
14 namespace paths {
15 
16 std::pair<bool, std::string> GetExecutableDirectoryPath();
17 
18 // Get the directory to the application's caches directory.
19 fml::UniqueFD GetCachesDirectory();
20 
21 std::string JoinPaths(std::initializer_list<std::string> components);
22 
23 // Returns the absolute path of a possibly relative path.
24 // It doesn't consult the filesystem or simplify the path.
25 std::string AbsolutePath(const std::string& path);
26 
27 // Returns the directory name component of the given path.
28 std::string GetDirectoryName(const std::string& path);
29 
30 // Decodes a URI encoded string.
31 std::string SanitizeURIEscapedCharacters(const std::string& str);
32 
33 // Converts a file URI to a path.
34 std::string FromURI(const std::string& uri);
35 
36 }  // namespace paths
37 }  // namespace fml
38 
39 #endif  // FLUTTER_FML_PATHS_H_
40