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