headers/bsd: Add sys/queue.h.
[haiku.git] / src / system / boot / loader / file_systems / bfs / Directory.h
blobdb44b0278b593be301d2e12708c0c5bfd60bd0d5
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 DIRECTORY_H
6 #define DIRECTORY_H
9 #include <boot/vfs.h>
11 #include "Volume.h"
12 #include "Stream.h"
13 #include "BPlusTree.h"
16 namespace BFS {
18 class Directory : public ::Directory {
19 public:
20 Directory(Volume &volume, block_run run);
21 Directory(Volume &volume, off_t id);
22 Directory(const Stream &stream);
23 virtual ~Directory();
25 status_t InitCheck();
27 virtual status_t Open(void **_cookie, int mode);
28 virtual status_t Close(void *cookie);
30 virtual Node* LookupDontTraverse(const char* name);
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();
37 virtual status_t GetName(char *name, size_t size) const;
38 virtual ino_t Inode() const;
40 private:
41 Stream fStream;
42 BPlusTree fTree;
44 typedef ::Directory _inherited;
47 } // namespace BFS
49 #endif /* DIRECTORY_H */