diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2021-12-11 00:51:42 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-12-11 00:51:42 +0000 |
commit | f6eecf1513563a7d495b84e3c3c60a7158236141 (patch) | |
tree | fac09f6b31c0787de77890049eca312d42896f4d /include/bsdiff/file.h | |
parent | f7c65e157b50f599ef328026291c2d4b18fac68f (diff) | |
parent | b4da837b5835d8e3d868aaf41c6e277f8dc1442d (diff) | |
download | bsdiff-f6eecf1513563a7d495b84e3c3c60a7158236141.tar.gz |
Merge "Expose file utility classes for consumption" am: b4da837b58
Original change: https://android-review.googlesource.com/c/platform/external/bsdiff/+/1917558
Change-Id: I35f736bdd4bca37e0508ee13d8d002e4c970e649
Diffstat (limited to 'include/bsdiff/file.h')
-rw-r--r-- | include/bsdiff/file.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/bsdiff/file.h b/include/bsdiff/file.h new file mode 100644 index 0000000..959c53e --- /dev/null +++ b/include/bsdiff/file.h @@ -0,0 +1,39 @@ +// Copyright 2015 The Chromium OS Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef _BSDIFF_FILE_H_ +#define _BSDIFF_FILE_H_ + +#include <memory> + +#include "bsdiff/file_interface.h" + +namespace bsdiff { + +class File : public FileInterface { + public: + // Opens a file |pathname| with flags |flags| as defined by open(2). In case + // of error, an empty unique_ptr is returned and errno is set accordingly. + static std::unique_ptr<File> FOpen(const char* pathname, int flags); + + ~File() override; + + // FileInterface overrides. + bool Read(void* buf, size_t count, size_t* bytes_read) override; + bool Write(const void* buf, size_t count, size_t* bytes_written) override; + bool Seek(off_t pos) override; + bool Close() override; + bool GetSize(uint64_t* size) override; + + private: + // Creates the File instance for the |fd|. Takes ownership of the file + // descriptor. + explicit File(int fd); + + int fd_; +}; + +} // namespace bsdiff + +#endif // _BSDIFF_FILE_H_ |