1/* 2 * Copyright 2013, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Ingo Weinhold, ingo_weinhold@gmx.de 7 */ 8#ifndef _VIRTUAL_DIRECTORY_ENTRY_LIST_H 9#define _VIRTUAL_DIRECTORY_ENTRY_LIST_H 10 11 12#include <StringList.h> 13 14#include <MergedDirectory.h> 15 16#include "EntryIterator.h" 17 18 19namespace BPrivate { 20 21class Model; 22 23class VirtualDirectoryEntryList : public EntryListBase { 24public: 25 VirtualDirectoryEntryList(Model* model); 26 VirtualDirectoryEntryList( 27 const node_ref& definitionFileRef, 28 const BStringList& directoryPaths); 29 virtual ~VirtualDirectoryEntryList(); 30 31 virtual status_t InitCheck() const; 32 33 virtual status_t GetNextEntry(BEntry* entry, 34 bool traverse = false); 35 virtual status_t GetNextRef(entry_ref* ref); 36 virtual int32 GetNextDirents(struct dirent* buffer, 37 size_t length, int32 count = INT_MAX); 38 39 virtual status_t Rewind(); 40 virtual int32 CountEntries(); 41 42private: 43 44 status_t _InitMergedDirectory( 45 const BStringList& directoryPaths); 46private: 47 node_ref fDefinitionFileRef; 48 BMergedDirectory fMergedDirectory; 49}; 50 51} // namespace BPrivate 52 53 54#endif // _VIRTUAL_DIRECTORY_ENTRY_LIST_H 55