1/* 2** Copyright 2003, Axel D��rfler, axeld@pinc-software.de. All rights reserved. 3** Distributed under the terms of the MIT License. 4*/ 5#ifndef FILE_H 6#define FILE_H 7 8 9#include <boot/vfs.h> 10 11#include "Volume.h" 12 13 14namespace FFS { 15 16class File : public Node { 17 public: 18 File(Volume &volume, int32 block); 19 virtual ~File(); 20 21 status_t InitCheck(); 22 23 virtual status_t Open(void **_cookie, int mode); 24 virtual status_t Close(void *cookie); 25 26 virtual ssize_t ReadAt(void *cookie, off_t pos, void *buffer, size_t bufferSize); 27 virtual ssize_t WriteAt(void *cookie, off_t pos, const void *buffer, size_t bufferSize); 28 29 virtual status_t GetName(char *nameBuffer, size_t bufferSize) const; 30 virtual int32 Type() const; 31 virtual off_t Size() const; 32 virtual ino_t Inode() const; 33 34 private: 35 Volume &fVolume; 36 FileBlock fNode; 37}; 38 39} // namespace FFS 40 41#endif /* FILE_H */ 42