diff options
Diffstat (limited to 'attributes.h')
-rw-r--r-- | attributes.h | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/attributes.h b/attributes.h index ab8cb14..34cf258 100644 --- a/attributes.h +++ b/attributes.h @@ -2,10 +2,7 @@ under the terms of the GNU GPL version 2, as detailed in the COPYING file. */ #include <stdint.h> -//#include <unistd.h> -#include <stdlib.h> -#include <string.h> -#include "support.h" +#include <string> #ifndef __GPT_ATTRIBUTES #define __GPT_ATTRIBUTES @@ -16,16 +13,27 @@ using namespace std; class Attributes { + +private: + class staticInit {public: staticInit (void);}; + static string atNames[NUM_ATR]; + static Attributes::staticInit staticInitializer; + protected: uint64_t attributes; - string atNames[NUM_ATR]; + public: - Attributes(void); + Attributes(const uint64_t a = 0) {SetAttributes (a);} ~Attributes(void); - void SetAttributes(uint64_t a) {attributes = a;} + void SetAttributes(const uint64_t a) {attributes = a;} uint64_t GetAttributes(void) {return attributes;} void DisplayAttributes(void); void ChangeAttributes(void); + void ShowAttributes(const uint32_t partNum); + bool OperateOnAttributes(const uint32_t partNum, const string& attributeOperator, const string& attributeBits); + + static const string& GetAttributeName(const uint32_t bitNum) {return atNames [bitNum];} + static void ListAttributes(void); }; // class Attributes #endif |