author | Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
Thu, 24 Apr 2008 16:06:33 -0700 | |
changeset 3041 | a624276a897b |
parent 3040 | src/common/mtag-buffer.h@e11e106c7c19 |
child 3045 | 895cb1b6a903 |
permissions | -rw-r--r-- |
3035
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
#ifndef MTAG_BUFFER_H |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
#define MTAG_BUFFER_H |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
|
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
#include <stdint.h> |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
|
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
namespace ns3 { |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
7 |
|
3040
e11e106c7c19
Mtag -> Tag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3037
diff
changeset
|
8 |
class TagBuffer |
3035
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
{ |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
public: |
3040
e11e106c7c19
Mtag -> Tag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3037
diff
changeset
|
11 |
TagBuffer (uint8_t *start, uint8_t *end); |
3035
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
void TrimAtEnd (uint32_t trim); |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
|
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
void WriteU8 (uint8_t v); |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
void WriteU16 (uint16_t v); |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
void WriteU32 (uint32_t v); |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
void WriteU64 (uint64_t v); |
3037
b0f12f3a75b3
add a couple of serialization/deserialization methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3035
diff
changeset
|
18 |
void WriteDouble (double v); |
b0f12f3a75b3
add a couple of serialization/deserialization methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3035
diff
changeset
|
19 |
void Write (const uint8_t *buffer, uint32_t size); |
3035
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
uint8_t ReadU8 (void); |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
uint16_t ReadU16 (void); |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
uint32_t ReadU32 (void); |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
uint64_t ReadU64 (void); |
3037
b0f12f3a75b3
add a couple of serialization/deserialization methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3035
diff
changeset
|
24 |
double ReadDouble (void); |
b0f12f3a75b3
add a couple of serialization/deserialization methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3035
diff
changeset
|
25 |
void Read (uint8_t *buffer, uint32_t size); |
3035
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
26 |
|
3040
e11e106c7c19
Mtag -> Tag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3037
diff
changeset
|
27 |
void CopyFrom (TagBuffer o); |
3035
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
28 |
private: |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
|
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
uint8_t *m_current; |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
31 |
uint8_t *m_end; |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
32 |
}; |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
33 |
|
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
34 |
} // namespace ns3 |
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
35 |
|
644bfc099992
a new tag implementation: Mtag
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
36 |
#endif /* MTAG_BUFFER_H */ |