#ifndef __Directory_h__ # define __Directory_h__ # include "includes" # include "DirectoryEntry.h" # include "Log.h" namespace coreutils { class Directory { public: Directory(std::string path) { dir = opendir(path.c_str()); if(dir) { struct dirent *entry = readdir(dir); while(entry) { directory.emplace(std::string(entry->d_name), entry); entry = readdir(dir); } } if(directory.size() > 0) cursor = directory.begin(); } ~Directory() {} bool eod() { return cursor == directory.end(); } DirectoryEntry get() { if(eod()) return NULL; return cursor->second; } void next() { ++cursor; } private: DIR *dir; std::map directory; std::map::iterator cursor; }; } #endif