april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
uniqueid.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __UNIQUEID_INC__
21 #define __UNIQUEID_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
29 #include <QMap>
30 
31 /* INCLUDES ============================================================ */
32 //
33 //
34 //
35 //
36 /* DEFINITIONS --------------------------------------------------------- */
37 
38 class QSettings;
39 
40 namespace april {
41 
43 typedef quint64 ID;
44 
45 
47 enum UniqueIdSpecialCodes {
48 
50  InvalidId = 0
51 
52 };
53 
54 /* DEFINITIONS ========================================================= */
55 //
56 //
57 //
58 //
59 /* CLASS --------------------------------------------------------------- */
60 
64 class
66  UniqueId {
67  BBM_TRACK( UniqueId );
68 
69  //
70  //
71  //
72  //
73  /* DEFINITIONS ----------------------------------------------------- */
74 
75  /* DEFINITIONS ===================================================== */
76  //
77  //
78  //
79  //
80  /* DATA ------------------------------------------------------------ */
81 
82 private:
83 
85  QString my_name_;
86 
88  QMap<ID,QString> map_;
89 
91  ID first_free_;
92 
93 
94  /* DATA ============================================================ */
95  //
96  //
97  //
98  //
99  /* FUNCTIONS ------------------------------------------------------- */
100 
101 public:
102 
104  UniqueId( const QString & s_name );
105 
106 private:
107 
109  UniqueId(){}
110 
111 public:
112 
114  ~UniqueId();
115 
116 public:
117 
119  QString name ( ID id );
120 
122 
126  ID value ( const QString & s_name );
127 
129  void insert ( ID id, const QString & s_name );
130 
132  ID addNew ( const QString & s_name = QString() );
133 
135  ID checkAdd ( const QString & s_name );
136 
138  void checkAdd ( ID id, const QString & s_name );
139 
141  bool save ( QSettings & stg ) const;
142 
144  bool load ( QSettings & stg );
145 
147  bool operator == ( const UniqueId & other ) const;
148 
150  QString createName ( const QString & s_pattern );
151 
153  QList<ID> ids ( void ) const
154  { return map_.keys(); }
155 
157  bool isAssigned ( ID id ) const
158  { return map_.contains( id ); }
159 
160  /* FUNCTIONS ======================================================= */
161  //
162  //
163  //
164  //
165 
166 }; /* class UniqueId */
167 
168 /* CLASS =============================================================== */
169 //
170 //
171 //
172 //
173 
174 } // namespace april
175 
176 #endif // __UNIQUEID_INC__
177 /* ------------------------------------------------------------------------- */
178 /* ========================================================================= */