-
Notifications
You must be signed in to change notification settings - Fork 82
/
settimestamp.hh
60 lines (39 loc) · 1.3 KB
/
settimestamp.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// -*- c-basic-offset: 4 -*-
#ifndef CLICK_SETTIMESTAMP_HH
#define CLICK_SETTIMESTAMP_HH
#include <click/batchelement.hh>
CLICK_DECLS
/*
=c
SetTimestamp([TIMESTAMP, I<keyword> FIRST])
=s timestamps
store the time in the packet's timestamp annotation
=d
Store the specified TIMESTAMP in the packet's timestamp annotation. If
TIMESTAMP is not specified, then sets the annotation to the system time when
the packet arrived at the SetTimestamp element.
Keyword arguments are:
=over 8
=item FIRST
Boolean. If true, then set the packet's "first timestamp" annotation, not its
timestamp annotation. Default is false.
=back
=a StoreTimestamp, AdjustTimestamp, SetTimestampDelta, PrintOld */
class SetTimestamp : public BatchElement { public:
SetTimestamp() CLICK_COLD;
const char *class_name() const override { return "SetTimestamp"; }
const char *port_count() const override { return PORTS_1_1; }
int configure(Vector<String> &, ErrorHandler *) CLICK_COLD;
Packet *simple_action(Packet *) override;
#if HAVE_BATCH
PacketBatch *simple_action_batch(PacketBatch *) override;
#endif
private:
enum { ACT_NOW, ACT_TIME, ACT_FIRST_NOW, ACT_FIRST_TIME }; // order matters
int _action;
bool _per_batch;
Timestamp _tv;
inline void rmaction(Packet *);
};
CLICK_ENDDECLS
#endif