1/* 2 * Copyright 2003-2006, Haiku Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Ingo Weinhold, bonefish@users.sf.net 7 */ 8#ifndef _DISK_DEVICE_PRIVATE_H 9#define _DISK_DEVICE_PRIVATE_H 10 11 12#include <DiskDeviceDefs.h> 13#include <DiskDeviceVisitor.h> 14 15class BMessenger; 16class BPath; 17 18 19namespace BPrivate { 20 21// PartitionFilter 22class PartitionFilter { 23public: 24 virtual ~PartitionFilter(); 25 virtual bool Filter(BPartition *partition, int32 level) = 0; 26}; 27 28// PartitionFilterVisitor 29class PartitionFilterVisitor : public BDiskDeviceVisitor { 30public: 31 PartitionFilterVisitor(BDiskDeviceVisitor *visitor, 32 PartitionFilter *filter); 33 34 virtual bool Visit(BDiskDevice *device); 35 virtual bool Visit(BPartition *partition, int32 level); 36 37private: 38 BDiskDeviceVisitor *fVisitor; 39 PartitionFilter *fFilter; 40}; 41 42// IDFinderVisitor 43class IDFinderVisitor : public BDiskDeviceVisitor { 44public: 45 IDFinderVisitor(partition_id id); 46 47 virtual bool Visit(BDiskDevice *device); 48 virtual bool Visit(BPartition *partition, int32 level); 49 50private: 51 partition_id fID; 52}; 53 54} // namespace BPrivate 55 56using BPrivate::PartitionFilter; 57using BPrivate::PartitionFilterVisitor; 58using BPrivate::IDFinderVisitor; 59 60#endif // _DISK_DEVICE_PRIVATE_H 61