1/*
2 * Copyright 2011, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef UNPACKING_NODE_H
6#define UNPACKING_NODE_H
7
8
9#include <SupportDefs.h>
10
11
12class Node;
13class PackageNode;
14
15
16class UnpackingNode {
17public:
18	virtual						~UnpackingNode();
19
20	virtual	Node*				GetNode() = 0;
21
22	virtual	status_t			AddPackageNode(PackageNode* packageNode) = 0;
23	virtual	void				RemovePackageNode(PackageNode* packageNode) = 0;
24
25	virtual	PackageNode*		GetPackageNode() = 0;
26	virtual	bool				IsOnlyPackageNode(PackageNode* node) const = 0;
27	virtual	bool				WillBeFirstPackageNode(
28									PackageNode* packageNode) const = 0;
29
30	virtual	void				PrepareForRemoval() = 0;
31	virtual	status_t			CloneTransferPackageNodes(ino_t id,
32									UnpackingNode*& _newNode);
33};
34
35
36#endif	// UNPACKING_NODE_H
37