1/*
2 * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef DIRECTORY_H
6#define DIRECTORY_H
7
8
9#include "Node.h"
10
11
12class Directory : public Node {
13public:
14								Directory(Volume* volume, uint64 blockIndex,
15									const checksumfs_node& nodeData);
16								Directory(Volume* volume, mode_t mode);
17	virtual						~Directory();
18
19	virtual	void				DeletingNode();
20
21			status_t			LookupEntry(const char* name,
22									uint64& _blockIndex);
23			status_t			LookupNextEntry(const char* name,
24									char* foundName, size_t& _foundNameLength,
25									uint64& _blockIndex);
26
27			status_t			InsertEntry(const char* name, uint64 blockIndex,
28									Transaction& transaction);
29			status_t			RemoveEntry(const char* name,
30									Transaction& transaction,
31									bool* _lastEntryRemoved = NULL);
32};
33
34
35#endif	// DIRECTORY_H
36