/* * Copyright 2007, Ingo Weinhold, bonefish@users.sf.net. * Distributed under the terms of the MIT License. */ #ifndef _PARTITION_MAP_ADD_ON_H #define _PARTITION_MAP_ADD_ON_H #include #include "PartitionMap.h" class PartitionMapAddOn : public BDiskSystemAddOn { public: PartitionMapAddOn(); virtual ~PartitionMapAddOn(); virtual status_t CreatePartitionHandle( BMutablePartition* partition, BPartitionHandle** handle); virtual bool CanInitialize( const BMutablePartition* partition); virtual status_t ValidateInitialize( const BMutablePartition* partition, BString* name, const char* parameters); virtual status_t Initialize(BMutablePartition* partition, const char* name, const char* parameters, BPartitionHandle** handle); }; class PartitionMapHandle : public BPartitionHandle { public: PartitionMapHandle( BMutablePartition* partition); virtual ~PartitionMapHandle(); status_t Init(); virtual uint32 SupportedOperations(uint32 mask); virtual uint32 SupportedChildOperations( const BMutablePartition* child, uint32 mask); virtual status_t GetNextSupportedType( const BMutablePartition* child, int32* cookie, BString* type); virtual status_t GetPartitioningInfo(BPartitioningInfo* info); virtual status_t ValidateSetParameters( const BMutablePartition* child, const char* parameters); virtual status_t SetParameters( BMutablePartition* child, const char* parameters); virtual status_t GetParameterEditor( B_PARAMETER_EDITOR_TYPE type, BPartitionParameterEditor** editor); virtual status_t ValidateCreateChild(off_t* offset, off_t* size, const char* type, BString* name, const char* parameters); virtual status_t CreateChild(off_t offset, off_t size, const char* type, const char* name, const char* parameters, BMutablePartition** child); virtual status_t DeleteChild(BMutablePartition* child); private: PartitionMap fPartitionMap; }; #endif // _PARTITION_MAP_ADD_ON_H