1// File.h
2
3#ifndef FILE_H
4#define FILE_H
5
6#include "DataContainer.h"
7#include "Node.h"
8
9class File : public Node, public DataContainer {
10public:
11	File(Volume *volume);
12	virtual ~File();
13
14	Volume *GetVolume() const	{ return Node::GetVolume(); }
15
16	virtual status_t ReadAt(off_t offset, void *buffer, size_t size,
17							size_t *bytesRead);
18	virtual status_t WriteAt(off_t offset, const void *buffer, size_t size,
19							 size_t *bytesWritten);
20
21	virtual status_t SetSize(off_t newSize);
22	virtual off_t GetSize() const;
23
24	// debugging
25	virtual void GetAllocationInfo(AllocationInfo &info);
26};
27
28#endif	// FILE_H
29