00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef DM_PART_H
00024 #define DM_PART_H
00025
00026 #include "storage/Dm.h"
00027 #include "storage/Partition.h"
00028
00029 namespace storage
00030 {
00031
00032 class DmPartCo;
00033 class ProcParts;
00034
00035
00036 class DmPart : public Dm
00037 {
00038 public:
00039
00040 DmPart(const DmPartCo& c, const string& name, const string& device, unsigned nr,
00041 Partition* p, SystemInfo& si);
00042 DmPart(const DmPartCo& c, const string& name, const string& device, unsigned nr,
00043 Partition* p);
00044 DmPart(const DmPartCo& c, const DmPart& v);
00045 virtual ~DmPart();
00046
00047 friend std::ostream& operator<< (std::ostream& s, const DmPart &p );
00048 virtual void print( std::ostream& s ) const { s << *this; }
00049 void getInfo( storage::DmPartInfo& info ) const;
00050 bool equalContent( const DmPart& rhs ) const;
00051
00052 void logDifference(std::ostream& log, const DmPart& rhs) const;
00053
00054 void setPtr( Partition* pa ) { p=pa; };
00055 Partition* getPtr() const { return p; };
00056 unsigned id() const { return p?p->id():0; }
00057 void updateName();
00058 void updateMinor();
00059 void updateSize(const ProcParts& parts);
00060 void updateSize();
00061 void getCommitActions(list<commitAction>& l) const;
00062 void addUdevData();
00063 virtual list<string> getUsing() const;
00064 virtual list<string> udevId() const;
00065 virtual Text setTypeText(bool doing) const;
00066 static bool notDeleted( const DmPart& l ) { return( !l.deleted() ); }
00067
00068 protected:
00069
00070 virtual const string shortPrintedName() const { return( "DmPart" ); }
00071 const DmPartCo* co() const;
00072 void addAltUdevId( unsigned num );
00073 Partition* p;
00074
00075 mutable storage::DmPartInfo info;
00076
00077 private:
00078
00079 DmPart(const DmPart&);
00080 DmPart& operator=(const DmPart&);
00081
00082 };
00083
00084 }
00085
00086 #endif