1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef BASE_DIR_READER_FALLBACK_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define BASE_DIR_READER_FALLBACK_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace base {
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DirReaderFallback {
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Open a directory. If |IsValid| is true, then |Next| can be called to start
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // the iteration at the beginning of the directory.
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  explicit DirReaderFallback(const char* directory_path) { }
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // After construction, IsValid returns true iff the directory was
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // successfully opened.
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  bool IsValid() const { return false; }
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Move to the next entry returning false if the iteration is complete.
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  bool Next() { return false; }
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Return the name of the current directory entry.
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const char* name() { return 0;}
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Return the file descriptor which is being used.
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  int fd() const { return -1; }
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Returns true if this is a no-op fallback class (for testing).
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  static bool IsFallback() { return true; }
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace base
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // BASE_DIR_READER_FALLBACK_H_
32