1/* 2 * Copyright 2003-2007, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Tomas Kucera, kucerat@centrum.cz 7 */ 8 9 10#include "PartitionLocker.h" 11 12 13// #pragma mark - PartitionLocker 14 15 16PartitionLocker::PartitionLocker(partition_id partitionID) 17 : 18 fDevice(NULL), 19 fPartitionID(partitionID) 20{ 21} 22 23 24PartitionLocker::~PartitionLocker() 25{ 26} 27 28 29bool 30PartitionLocker::IsLocked() const 31{ 32 return fDevice != NULL; 33} 34 35 36partition_id 37PartitionLocker::PartitionId() const 38{ 39 return fPartitionID; 40} 41 42 43// #pragma mark - PartitionReadLocker 44 45 46PartitionReadLocker::PartitionReadLocker(partition_id partitionID) 47 : 48 PartitionLocker(partitionID) 49{ 50 fDevice = read_lock_disk_device(partitionID); 51} 52 53 54PartitionReadLocker::~PartitionReadLocker() 55{ 56 if (IsLocked()) 57 read_unlock_disk_device(PartitionId()); 58} 59 60 61// #pragma mark - PartitionWriteLocker 62 63 64PartitionWriteLocker::PartitionWriteLocker(partition_id partitionID) 65 : 66 PartitionLocker(partitionID) 67{ 68 fDevice = write_lock_disk_device(partitionID); 69} 70 71 72PartitionWriteLocker::~PartitionWriteLocker() 73{ 74 if (IsLocked()) 75 write_unlock_disk_device(PartitionId()); 76} 77