summaryrefslogtreecommitdiff
path: root/ui/qfileaccessor.h
blob: 014eba52c6610ccabc505b574228ccea6900320a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include <QtCore/QFile>
#include "uitypes.h"

/*!

	\defgroup qfileaccessor QFileAccessor
 	\ingroup uiapi
*/

/*!
    \ingroup qfileaccessor
*/
class BINARYNINJAUIAPI QFileAccessor : public BinaryNinja::FileAccessor
{
	std::optional<QFile> m_file;
	QString m_error;

  public:
	QFileAccessor(const QString& name, bool write = false);
	virtual ~QFileAccessor();

	virtual bool IsValid() const;
	virtual QString GetError() const;
	virtual uint64_t GetLength() const;

	virtual size_t Read(void* dest, uint64_t offset, size_t len);
	virtual size_t Write(uint64_t offset, const void* src, size_t len);

	void Close();
};