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
9
10#include <DiskDevicePrivate.h>
11#include <DiskDevice.h>
12#include <Partition.h>
13
14
15PartitionFilter::~PartitionFilter()
16{
17}
18
19
20//	#pragma mark - PartitionFilterVisitor
21
22// constructor
23PartitionFilterVisitor::PartitionFilterVisitor(BDiskDeviceVisitor *visitor,
24											   PartitionFilter *filter)
25	: BDiskDeviceVisitor(),
26	  fVisitor(visitor),
27	  fFilter(filter)
28{
29}
30
31// Visit
32bool
33PartitionFilterVisitor::Visit(BDiskDevice *device)
34{
35	if (fFilter->Filter(device, 0))
36		return fVisitor->Visit(device);
37	return false;
38}
39
40// Visit
41bool
42PartitionFilterVisitor::Visit(BPartition *partition, int32 level)
43{
44	if (fFilter->Filter(partition, level))
45		return fVisitor->Visit(partition, level);
46	return false;
47}
48
49
50// #pragma mark -
51
52// IDFinderVisitor
53
54// constructor
55IDFinderVisitor::IDFinderVisitor(int32 id)
56	: BDiskDeviceVisitor(),
57	  fID(id)
58{
59}
60
61// Visit
62bool
63IDFinderVisitor::Visit(BDiskDevice *device)
64{
65	return (device->ID() == fID);
66}
67
68// Visit
69bool
70IDFinderVisitor::Visit(BPartition *partition, int32 level)
71{
72	return (partition->ID() == fID);
73}
74
75