2 * Copyright 2013, Haiku, Inc.
3 * Distributed under the terms of the MIT License.
6 * Ingo Weinhold, ingo_weinhold@gmx.de
8 #ifndef _VIRTUAL_DIRECTORY_ENTRY_LIST_H
9 #define _VIRTUAL_DIRECTORY_ENTRY_LIST_H
12 #include <StringList.h>
14 #include <MergedDirectory.h>
16 #include "EntryIterator.h"
23 class VirtualDirectoryEntryList
: public EntryListBase
{
25 VirtualDirectoryEntryList(Model
* model
);
26 VirtualDirectoryEntryList(
27 const node_ref
& definitionFileRef
,
28 const BStringList
& directoryPaths
);
29 virtual ~VirtualDirectoryEntryList();
31 virtual status_t
InitCheck() const;
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
);
39 virtual status_t
Rewind();
40 virtual int32
CountEntries();
44 status_t
_InitMergedDirectory(
45 const BStringList
& directoryPaths
);
47 node_ref fDefinitionFileRef
;
48 BMergedDirectory fMergedDirectory
;
51 } // namespace BPrivate
54 #endif // _VIRTUAL_DIRECTORY_ENTRY_LIST_H