ITS
LifeTime.h
Go to the documentation of this file.
1 
7 #ifndef LIFETIME_H
8 #define LIFETIME_H
9 
10 #include <QByteArray>
11 #include <constantes.h>
12 
16 typedef struct sniff_lifeTime_s
17 {
20 
21 class LifeTime
22 {
23 public:
24 
28  enum e_helper
29  {
31  };
32 
36  enum e_base
37  {
39  base_1_s = 1,
40  base_10_s = 2,
42  };
43 
44  /* Constructor */
48  LifeTime();
54  LifeTime(quint8 multiplier, enum e_base base);
59  LifeTime(quint8 multiplierBase);
64  LifeTime(quint64 lifeTime);
69  LifeTime(const LifeTime &other);
75 
76  /* Getters */
81  quint8 multiplier() const{return (m_multiplier_base & 0xFC) >> 2;}
86  quint8 base() const{return m_multiplier_base & 0x3;}
91  int baseUnit() const{
92  switch (base())
93  {
95  return 50;
96  break;
97  case LifeTime::base_1_s:
98  return 1000;
99  break;
100  case LifeTime::base_10_s:
101  return 10000;
102  break;
104  return 100000;
105  break;
106  default:
108  break;
109  };
110  }
115  quint8 multiplierBase() const{return m_multiplier_base;}
120  quint32 lifeTime() const{
121  switch (base())
122  {
125  break;
126  case LifeTime::base_1_s:
127  return 1000*multiplier()>(itsGnMaxPacketLifetime*1000)?(itsGnMaxPacketLifetime*1000):1000*multiplier();
128  break;
129  case LifeTime::base_10_s:
130  return 10000*multiplier()>(itsGnMaxPacketLifetime*1000)?(itsGnMaxPacketLifetime*1000):10000*multiplier();
131  break;
133  return 100000*multiplier()>(itsGnMaxPacketLifetime*1000)?(itsGnMaxPacketLifetime*1000):100000*multiplier();
134  break;
135  default:
137  break;
138  };}
139 
140  /* Setters */
145  void setMultiplier(quint8 m) {m_multiplier_base &= 0x3; m_multiplier_base |= ((m & 0x3F) << 2);}
150  void setBase(enum e_base b) {m_multiplier_base &= 0xFC; m_multiplier_base |= b;}
160  void setMultiplierBase(quint32 lifeTime);
161 
162  /* API */
167  QByteArray toHex();
168 
169 private:
171 };
172 
173 #endif // LIFETIME_H
quint8 multiplier() const
multiplier Multiplier getter.
Definition: LifeTime.h:81
QByteArray toHex()
toHex Encode the LifeTime in byte array.
Definition: LifeTime.cpp:114
quint8 base() const
base Base getter.
Definition: LifeTime.h:86
quint8 m_multiplier_base
Definition: LifeTime.h:170
struct sniff_lifeTime_s sniff_lifeTime_t
sniff_lifeTime_t structure is the C style of the class.
int baseUnit() const
baseUnit Get the base unit in millisecond.
Definition: LifeTime.h:91
quint8 multiplierBase() const
multiplierBase Multiplier + base getter.
Definition: LifeTime.h:115
sniff_lifeTime_t structure is the C style of the class.
Definition: LifeTime.h:16
void setMultiplier(quint8 m)
setMultiplier Multiplier setter.
Definition: LifeTime.h:145
void setBase(enum e_base b)
setBase Base setter.
Definition: LifeTime.h:150
quint32 lifeTime() const
lifeTime Life time value computation.
Definition: LifeTime.h:120
Constantes used everywhere.
#define itsGnMaxPacketLifetime
Definition: constantes.h:112
LifeTime()
LifeTime LifeTime constructor.
Definition: LifeTime.cpp:5
#define itsGnDefaultPacketLifeTime
Definition: constantes.h:111
quint8 multiplier_base
Definition: LifeTime.h:18
void setMultiplierBase(quint8 m)
setMultiplierBase Multiplier + base setter.
Definition: LifeTime.h:155
e_base
The e_base enum is the base encoding.
Definition: LifeTime.h:36
e_helper
The e_helper enum is used to help to have sizes.
Definition: LifeTime.h:28