xref: /haiku/src/add-ons/kernel/file_systems/packagefs/package/PackageLeafNode.h (revision 4b7e219688450694efc9d1890f83f816758c16d3)
1 /*
2  * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef PACKAGE_LEAF_NODE_H
6 #define PACKAGE_LEAF_NODE_H
7 
8 
9 #include "PackageNode.h"
10 
11 #include <io_requests.h>
12 
13 
14 class PackageLeafNode : public PackageNode {
15 public:
16 								PackageLeafNode(Package* package, mode_t mode);
17 	virtual						~PackageLeafNode();
18 
19 	virtual	String				SymlinkPath() const;
20 
21 	virtual	status_t			Read(off_t offset, void* buffer,
22 									size_t* bufferSize);
23 	virtual	status_t			Read(io_request* request);
24 
25 public:
26 			SinglyLinkedListLink<PackageLeafNode> fListLink;
27 };
28 
29 
30 typedef SinglyLinkedList<PackageLeafNode,
31 	SinglyLinkedListMemberGetLink<PackageLeafNode,
32 		&PackageLeafNode::fListLink> > PackageLeafNodeList;
33 
34 
35 #endif	// PACKAGE_LEAF_NODE_H
36