blob: c4199496b59befb3762e8ccee61facb3d97318e3 [file] [log] [blame]
Patrick Venture64919ec2018-11-15 11:52:07 -08001#pragma once
2
3#include "image_handler.hpp"
4
5#include <cstdint>
6#include <fstream>
7#include <memory>
8#include <string>
9#include <vector>
10
11namespace blobs
12{
13
14class FileHandler : public ImageHandlerInterface
15{
16 public:
17 /**
18 * Create a FileHandler. This object is basically a filewriter.
19 *
20 * @param[in] filename - file to use for the contents, fully
21 * qualified file system path.
22 */
23 explicit FileHandler(const std::string& filename) : filename(filename)
24 {
25 }
26
27 bool open(const std::string& path) override;
28 void close() override;
29 bool write(std::uint32_t offset,
30 const std::vector<std::uint8_t>& data) override;
31
32 private:
33 /** the active hash path, ignore. */
34 std::string path;
35
36 /** The file handle. */
37 std::ofstream file;
38
39 /** The filename (including path) to use to write bytes. */
40 std::string filename;
41};
42
43} // namespace blobs