1ec103c3cSStephan Aßmus /* 20d7d4957SAxel Dörfler * Copyright 2002-2013 Haiku, Inc. All rights reserved. 3ec103c3cSStephan Aßmus * Distributed under the terms of the MIT license. 4ec103c3cSStephan Aßmus */ 5ec103c3cSStephan Aßmus #ifndef SUPPORT_H 6ec103c3cSStephan Aßmus #define SUPPORT_H 7ec103c3cSStephan Aßmus 8ec103c3cSStephan Aßmus 9967d7204SStephan Aßmus #include <DiskDeviceDefs.h> 10967d7204SStephan Aßmus #include <HashMap.h> 11967d7204SStephan Aßmus #include <HashString.h> 12dc59ebe7SIngo Weinhold #include <Slider.h> 13dc59ebe7SIngo Weinhold #include <String.h> 1448d79657SStephan Aßmus #include "StringForSize.h" 15ec103c3cSStephan Aßmus 16ec103c3cSStephan Aßmus 17ec103c3cSStephan Aßmus class BPartition; 18ec103c3cSStephan Aßmus 19ec103c3cSStephan Aßmus 20ec103c3cSStephan Aßmus void dump_partition_info(const BPartition* partition); 21ec103c3cSStephan Aßmus 22967d7204SStephan Aßmus bool is_valid_partitionable_space(size_t size); 23967d7204SStephan Aßmus 2429aec87eSIngo Weinhold 25967d7204SStephan Aßmus class SpaceIDMap : public HashMap<HashString, partition_id> { 26967d7204SStephan Aßmus public: 27967d7204SStephan Aßmus SpaceIDMap(); 28967d7204SStephan Aßmus virtual ~SpaceIDMap(); 29967d7204SStephan Aßmus 30967d7204SStephan Aßmus partition_id SpaceIDFor(partition_id parentID, 31967d7204SStephan Aßmus off_t spaceOffset); 32967d7204SStephan Aßmus 33967d7204SStephan Aßmus private: 34967d7204SStephan Aßmus partition_id fNextSpaceID; 35967d7204SStephan Aßmus }; 36967d7204SStephan Aßmus 370d7d4957SAxel Dörfler 38dc59ebe7SIngo Weinhold class SizeSlider : public BSlider { 39dc59ebe7SIngo Weinhold public: 40dc59ebe7SIngo Weinhold SizeSlider(const char* name, const char* label, 410d7d4957SAxel Dörfler BMessage* message, off_t offset, 420d7d4957SAxel Dörfler off_t size, uint32 minGranularity); 43dc59ebe7SIngo Weinhold virtual ~SizeSlider(); 44dc59ebe7SIngo Weinhold 45*fdff8a09SAxel Dörfler virtual void SetValue(int32 value); 46dc59ebe7SIngo Weinhold virtual const char* UpdateText() const; 470d7d4957SAxel Dörfler 480d7d4957SAxel Dörfler off_t Size() const; 490d7d4957SAxel Dörfler void SetSize(off_t size); 500d7d4957SAxel Dörfler 510d7d4957SAxel Dörfler off_t Offset() const; 520d7d4957SAxel Dörfler off_t MaxPartitionSize() const; 53dc59ebe7SIngo Weinhold 54dc59ebe7SIngo Weinhold private: 55eff35b90SIngo Weinhold off_t fStartOffset; 56eff35b90SIngo Weinhold off_t fEndOffset; 570d7d4957SAxel Dörfler off_t fSize; 5842ea87d5SStephan Aßmus off_t fMaxPartitionSize; 590d7d4957SAxel Dörfler uint32 fGranularity; 607d24c647SStephan Aßmus mutable char fStatusLabel[64]; 61dc59ebe7SIngo Weinhold }; 62ec103c3cSStephan Aßmus 630d7d4957SAxel Dörfler 64ec103c3cSStephan Aßmus #endif // SUPPORT_H 65