xref: /haiku/headers/private/storage/EntryOperationEngineBase.h (revision 2b76973fa2401f7a5edf68e6470f3d3210cbcff3)
1 /*
2  * Copyright 2013, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Ingo Weinhold <ingo_weinhold@gmx.de>
7  */
8 #ifndef _ENTRY_OPERATION_ENGINE_BASE_H
9 #define _ENTRY_OPERATION_ENGINE_BASE_H
10 
11 
12 #include <String.h>
13 
14 
15 class BDirectory;
16 class BEntry;
17 class BPath;
18 
19 struct entry_ref;
20 
21 
22 namespace BPrivate {
23 
24 
25 class BEntryOperationEngineBase {
26 public:
27 			class Entry;
28 };
29 
30 
31 class BEntryOperationEngineBase::Entry {
32 public:
33 								Entry(const char* path);
34 								Entry(const BDirectory& directory,
35 									const char* path = NULL);
36 								Entry(const BEntry& entry);
37 								Entry(const entry_ref& entryRef);
38 								~Entry();
39 
40 			status_t			GetPath(BPath& buffer, const char*& _path)
41 									const;
42 			BString				Path() const;
43 
44 private:
45 			const BDirectory*	fDirectory;
46 			const char*			fPath;
47 			const BEntry*		fEntry;
48 			const entry_ref*	fEntryRef;
49 };
50 
51 
52 } // namespace BPrivate
53 
54 
55 #endif	// _ENTRY_OPERATION_ENGINE_BASE_H
56