1/*
2 * Copyright 2007, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * All rights reserved. Distributed under the terms of the MIT license.
4 */
5#ifndef FILE_H
6#define FILE_H
7
8#include "DataContainer.h"
9#include "Node.h"
10
11class File : public Node, public DataContainer {
12public:
13	File(Volume *volume);
14	virtual ~File();
15
16	Volume *GetVolume() const	{ return Node::GetVolume(); }
17
18	virtual status_t ReadAt(off_t offset, void *buffer, size_t size,
19							size_t *bytesRead);
20	virtual status_t WriteAt(off_t offset, const void *buffer, size_t size,
21							 size_t *bytesWritten);
22
23	virtual status_t SetSize(off_t newSize);
24	virtual off_t GetSize() const;
25
26	// debugging
27	virtual void GetAllocationInfo(AllocationInfo &info);
28};
29
30#endif	// FILE_H
31