mirror of
https://github.com/expo/bsdiff.git
synced 2026-11-13 20:11:27 -10:00
The Makefile didn't build libbspatch and libbsdiff. This patch includes those libraries in the Makefile and moves the header files exposed by those to an include/bsdiff subdirectory following the Android convention so calling program can include "bsdiff/bspatch.h" avoiding any collision with other libraries. The Android.mk is updated to export the new include path while keeping the old style until calling programs are updated. The new Makefile allows Chromium OS to build the new libraries. Bug: None Test: FEATURES=test emerge-link bsdiff; sudo emerge bsdiff Test: mmma external/bsdiff Change-Id: I2ea9251eb224e9418fe236e4c4c9c5621853f590
42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
// Copyright 2016 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_BUFFER_FILE_H_
|
|
#define _BSDIFF_BUFFER_FILE_H_
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
#include "bsdiff/file_interface.h"
|
|
|
|
namespace bsdiff {
|
|
|
|
class BufferFile : public FileInterface {
|
|
public:
|
|
// Creates a write only BufferFile based on the underlying |file| passed.
|
|
// The BufferFile will cache all the write in a buffer and write everything
|
|
// to |file| at once upon closing. Read and Seek are not supported.
|
|
// |size| should be the estimated total file size, it is used to reserve
|
|
// buffer space.
|
|
BufferFile(std::unique_ptr<FileInterface> file, size_t size);
|
|
|
|
~BufferFile() 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:
|
|
// The underlying FileInterace instance.
|
|
std::unique_ptr<FileInterface> file_ = nullptr;
|
|
std::vector<uint8_t> buffer_;
|
|
};
|
|
|
|
} // namespace bsdiff
|
|
|
|
#endif // _BSDIFF_BUFFER_FILE_H_
|