1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef LOCATABLE_DIRECTORY_H
6#define LOCATABLE_DIRECTORY_H
7
8#include "LocatableEntry.h"
9
10
11class LocatableDirectory : public LocatableEntry {
12public:
13								LocatableDirectory(LocatableEntryOwner* owner,
14									LocatableDirectory* parent,
15									const BString& path);
16								~LocatableDirectory();
17
18	virtual	const char*			Name() const;
19			const char*			Path() const;
20			void				GetPath(BString& _path) const;
21
22			// mutable (requires locking)
23	virtual	bool				GetLocatedPath(BString& _path) const;
24	virtual	void				SetLocatedPath(const BString& path,
25									bool implicit);
26
27			void				AddEntry(LocatableEntry* entry);
28			void				RemoveEntry(LocatableEntry* entry);
29			const LocatableEntryList& Entries() const	{ return fEntries; }
30
31private:
32			BString				fPath;
33			BString				fLocatedPath;
34			LocatableEntryList	fEntries;
35};
36
37
38#endif	// LOCATABLE_DIRECTORY_H
39