blob: e65d127cb27fe92032b93b422574eb93465e0c81 [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef RTC_BASE_WIN32FILESYSTEM_H_
12#define RTC_BASE_WIN32FILESYSTEM_H_
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000013
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020014#include "fileutils.h"
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000015
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020016namespace rtc {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000017
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020018class Win32Filesystem : public FilesystemInterface {
19 public:
20 // This will attempt to delete the path located at filename.
21 // If the path points to a folder, it will fail with VERIFY
22 bool DeleteFile(const Pathname& filename) override;
23
Henrik Kjellanderc0362762017-06-29 08:03:04 +020024 // This moves a file from old_path to new_path. If the new path is on a
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020025 // different volume than the old, it will attempt to copy and then delete
26 // the folder
27 // Returns true if the file is successfully moved
28 bool MoveFile(const Pathname& old_path, const Pathname& new_path) override;
29
30 // Returns true if a pathname is a directory
31 bool IsFolder(const Pathname& pathname) override;
32
33 // Returns true if a file exists at path
34 bool IsFile(const Pathname& path) override;
35
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020036 // All of the following functions set pathname and return true if successful.
37 // Returned paths always include a trailing backslash.
38 // If create is true, the path will be recursively created.
39 // If append is non-null, it will be appended (and possibly created).
40
41 std::string TempFilename(const Pathname& dir,
42 const std::string& prefix) override;
43
44 bool GetFileSize(const Pathname& path, size_t* size) override;
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020045};
46
47} // namespace rtc
48
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020049#endif // RTC_BASE_WIN32FILESYSTEM_H_