Coverage Report

Created: 2023-09-21 18:56

/Users/buildslave/jenkins/workspace/coverage/llvm-project/lldb/include/lldb/Host/FileCache.h
Line
Count
Source
1
//===-- FileCache.h ---------------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
#ifndef LLDB_HOST_FILECACHE_H
9
#define LLDB_HOST_FILECACHE_H
10
11
#include <cstdint>
12
#include <map>
13
14
#include "lldb/lldb-forward.h"
15
#include "lldb/lldb-types.h"
16
17
#include "lldb/Host/File.h"
18
#include "lldb/Utility/FileSpec.h"
19
#include "lldb/Utility/Status.h"
20
21
namespace lldb_private {
22
class FileCache {
23
private:
24
1
  FileCache() = default;
25
26
  typedef std::map<lldb::user_id_t, lldb::FileUP> FDToFileMap;
27
28
public:
29
  static FileCache &GetInstance();
30
31
  lldb::user_id_t OpenFile(const FileSpec &file_spec, File::OpenOptions flags,
32
                           uint32_t mode, Status &error);
33
  bool CloseFile(lldb::user_id_t fd, Status &error);
34
35
  uint64_t WriteFile(lldb::user_id_t fd, uint64_t offset, const void *src,
36
                     uint64_t src_len, Status &error);
37
  uint64_t ReadFile(lldb::user_id_t fd, uint64_t offset, void *dst,
38
                    uint64_t dst_len, Status &error);
39
40
private:
41
  static FileCache *m_instance;
42
43
  FDToFileMap m_cache;
44
};
45
}
46
47
#endif