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