1/* 2 * Copyright 2003-2013, Axel Dörfler, axeld@pinc-software.de. 3 * This file may be used under the terms of the MIT License. 4 */ 5 6 7#include "File.h" 8 9 10namespace BFS { 11 12 13File::File(Volume &volume, block_run run) 14 : 15 fStream(volume, run) 16{ 17} 18 19 20File::File(Volume &volume, off_t id) 21 : 22 fStream(volume, id) 23{ 24} 25 26 27File::File(const Stream &stream) 28 : 29 fStream(stream) 30{ 31} 32 33 34File::~File() 35{ 36} 37 38 39status_t 40File::InitCheck() 41{ 42 return fStream.InitCheck(); 43} 44 45 46ssize_t 47File::ReadAt(void *cookie, off_t pos, void *buffer, size_t bufferSize) 48{ 49 status_t status = fStream.ReadAt(pos, (uint8 *)buffer, &bufferSize); 50 if (status < B_OK) 51 return status; 52 53 return bufferSize; 54} 55 56 57ssize_t 58File::WriteAt(void *cookie, off_t pos, const void *buffer, size_t bufferSize) 59{ 60 return EROFS; 61} 62 63 64status_t 65File::GetName(char *nameBuffer, size_t bufferSize) const 66{ 67 return fStream.GetName(nameBuffer, bufferSize); 68} 69 70 71int32 72File::Type() const 73{ 74 return S_IFREG; 75} 76 77 78off_t 79File::Size() const 80{ 81 return fStream.Size(); 82} 83 84 85ino_t 86File::Inode() const 87{ 88 return fStream.ID(); 89} 90 91 92} // namespace BFS 93