1 /* 2 ** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved. 3 ** Distributed under the terms of the OpenBeOS License. 4 */ 5 #ifndef DIRECTORY_H 6 #define DIRECTORY_H 7 8 9 #include "amiga_ffs.h" 10 11 #include <boot/vfs.h> 12 13 14 namespace FFS { 15 16 class Volume; 17 18 class Directory : public ::Directory { 19 public: 20 Directory(); 21 Directory(Volume &volume, RootBlock &root); 22 Directory(Volume &volume, int32 block); 23 virtual ~Directory(); 24 25 status_t InitCheck(); 26 27 virtual status_t Open(void **_cookie, int mode); 28 virtual status_t Close(void *cookie); 29 30 virtual Node* LookupDontTraverse(const char* name); 31 32 virtual status_t GetNextEntry(void *cookie, char *nameBuffer, size_t bufferSize); 33 virtual status_t GetNextNode(void *cookie, Node **_node); 34 virtual status_t Rewind(void *cookie); 35 virtual bool IsEmpty(); 36 37 virtual status_t GetName(char *name, size_t size) const; 38 virtual ino_t Inode() const; 39 40 private: 41 Volume &fVolume; 42 DirectoryBlock fNode; 43 44 typedef ::Directory _inherited; 45 }; 46 47 } // namespace FFS 48 49 #endif /* DIRECTORY_H */ 50