00001 #ifndef LVM_LV_H
00002 #define LVM_LV_H
00003
00004 #include <map>
00005
00006 #include "y2storage/Dm.h"
00007
00008 class LvmVg;
00009
00010 class LvmLv : public Dm
00011 {
00012 public:
00013 LvmLv( const LvmVg& d, const string& name, unsigned long le,
00014 const string& uuid, const string& status, const string& alloc );
00015 LvmLv( const LvmVg& d, const string& name, unsigned long le,
00016 unsigned stripe );
00017 LvmLv( const LvmVg& d, const LvmLv& l );
00018
00019 virtual ~LvmLv();
00020 void setUuid( const string& uuid ) { vol_uuid=uuid; }
00021 void setStatus( const string& s ) { status=s; }
00022 void setAlloc( const string& a ) { allocation=a; }
00023 friend std::ostream& operator<< (std::ostream& s, const LvmLv &p );
00024 virtual void print( std::ostream& s ) const { s << *this; }
00025 string removeText( bool doing ) const;
00026 string createText( bool doing ) const;
00027 string formatText( bool doing ) const;
00028 string resizeText( bool doing ) const;
00029 void getInfo( storage::LvmLvInfo& info ) const;
00030 bool equalContent( const LvmLv& rhs ) const;
00031 void logDifference( const LvmLv& d ) const;
00032
00033 protected:
00034 void init( const string& name );
00035 virtual const string shortPrintedName() const { return( "Lv" ); }
00036 LvmLv& operator=( const LvmLv& );
00037
00038 string vol_uuid;
00039 string status;
00040 string allocation;
00041 mutable storage::LvmLvInfo info;
00042 };
00043
00044 #endif