1/*
2 * Copyright 2020, Shubham Bhagat, shubhambhagat111@yahoo.com
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
5#ifndef _DIRECTORY_H_
6#define _DIRECTORY_H_
7
8
9#include "Inode.h"
10
11
12/*
13 * This class should act as a layer between any kind of directory
14 * and the kernel interface
15 */
16class DirectoryIterator {
17public:
18			virtual						~DirectoryIterator()							=	0;
19
20			virtual	status_t			GetNext(char* name, size_t* length,
21											xfs_ino_t* ino)								=	0;
22
23			virtual	status_t			Lookup(const char* name, size_t length,
24											xfs_ino_t* id)								=	0;
25
26			static DirectoryIterator*	Init(Inode* inode);
27};
28
29
30#endif
31