1/* Inode - emulation for the B+Tree torture test 2** 3** Initial version by Axel D��rfler, axeld@pinc-software.de 4** This file may be used under the terms of the MIT License. 5*/ 6 7 8#include "Inode.h" 9#include "Volume.h" 10#include "Journal.h" 11 12 13Inode::Inode(const char *name,int32 mode) 14 : 15 fMode(mode) 16{ 17 rw_lock_init(&fLock, "inode lock"); 18 fFile.SetTo(name,B_CREATE_FILE | B_READ_WRITE | B_ERASE_FILE); 19 fSize = 0; 20 fVolume = new Volume(&fFile); 21} 22 23 24Inode::~Inode() 25{ 26 delete fVolume; 27} 28 29 30status_t 31Inode::FindBlockRun(off_t pos, block_run &run, off_t &offset) 32{ 33 // the whole file data is covered by this one block_run structure... 34 run.SetTo(0,0,1); 35 offset = 0; 36 return B_OK; 37} 38 39 40status_t 41Inode::Append(Transaction& transaction, off_t bytes) 42{ 43 return SetFileSize(transaction, Size() + bytes); 44} 45 46 47status_t 48Inode::SetFileSize(Transaction&, off_t bytes) 49{ 50 //printf("set size = %ld\n",bytes); 51 fSize = bytes; 52 return fFile.SetSize(bytes); 53} 54 55