libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
enums_pcap.h
Go to the documentation of this file.
1
15#pragma once
16
17
18#include <promeki/config.h>
19#if PROMEKI_ENABLE_NETWORK
20#include <promeki/namespace.h>
21#include <promeki/enum.h>
22
23PROMEKI_NAMESPACE_BEGIN
24
53class PcapLinkType : public TypedEnum<PcapLinkType> {
54 public:
55 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("PcapLinkType", "PCAP Link Type", 1,
56 {"Null", 0, "BSD Loopback"},
57 {"Ethernet", 1, "Ethernet II / 802.3"},
58 {"Raw", 101, "Raw IP"},
59 {"Loop", 108, "OpenBSD Loopback"},
60 {"LinuxSll", 113, "Linux Cooked v1 (SLL)"},
61 {"Ipv4", 228, "Raw IPv4"},
62 {"Ipv6", 229, "Raw IPv6"},
63 {"LinuxSll2", 276, "Linux Cooked v2 (SLL2)"}); // default: Ethernet
64
65 using TypedEnum<PcapLinkType>::TypedEnum;
66
67 static const PcapLinkType Null;
68 static const PcapLinkType Ethernet;
69 static const PcapLinkType Raw;
70 static const PcapLinkType Loop;
71 static const PcapLinkType LinuxSll;
72 static const PcapLinkType Ipv4;
73 static const PcapLinkType Ipv6;
74 static const PcapLinkType LinuxSll2;
75};
76
77inline const PcapLinkType PcapLinkType::Null{0};
78inline const PcapLinkType PcapLinkType::Ethernet{1};
79inline const PcapLinkType PcapLinkType::Raw{101};
80inline const PcapLinkType PcapLinkType::Loop{108};
81inline const PcapLinkType PcapLinkType::LinuxSll{113};
82inline const PcapLinkType PcapLinkType::Ipv4{228};
83inline const PcapLinkType PcapLinkType::Ipv6{229};
84inline const PcapLinkType PcapLinkType::LinuxSll2{276};
85
95class PcapFileFormat : public TypedEnum<PcapFileFormat> {
96 public:
97 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("PcapFileFormat", "PCAP File Format", 0,
98 {"Unknown", 0, "Unknown"},
99 {"ClassicPcap", 1, "Classic pcap"},
100 {"Pcapng", 2, "pcapng"}); // default: Unknown
101
102 using TypedEnum<PcapFileFormat>::TypedEnum;
103
104 static const PcapFileFormat Unknown;
105 static const PcapFileFormat ClassicPcap;
106 static const PcapFileFormat Pcapng;
107};
108
109inline const PcapFileFormat PcapFileFormat::Unknown{0};
110inline const PcapFileFormat PcapFileFormat::ClassicPcap{1};
111inline const PcapFileFormat PcapFileFormat::Pcapng{2};
112
125class PcapByteOrder : public TypedEnum<PcapByteOrder> {
126 public:
127 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("PcapByteOrder", "PCAP Byte Order", 0,
128 {"Unknown", 0, "Unknown"},
129 {"LittleEndian", 1, "Little Endian"},
130 {"BigEndian", 2, "Big Endian"}); // default: Unknown
131
132 using TypedEnum<PcapByteOrder>::TypedEnum;
133
134 static const PcapByteOrder Unknown;
135 static const PcapByteOrder LittleEndian;
136 static const PcapByteOrder BigEndian;
137};
138
139inline const PcapByteOrder PcapByteOrder::Unknown{0};
140inline const PcapByteOrder PcapByteOrder::LittleEndian{1};
141inline const PcapByteOrder PcapByteOrder::BigEndian{2};
142
154class PcapFlowKind : public TypedEnum<PcapFlowKind> {
155 public:
156 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("PcapFlowKind", "PCAP Flow Kind", 0,
157 {"Unknown", 0, "Unknown"},
158 {"Video", 1, "Video"},
159 {"Audio", 2, "Audio"},
160 {"Anc", 3, "Ancillary Data"},
161 {"Data", 4, "Data"}); // default: Unknown
162
163 using TypedEnum<PcapFlowKind>::TypedEnum;
164
165 static const PcapFlowKind Unknown;
166 static const PcapFlowKind Video;
167 static const PcapFlowKind Audio;
168 static const PcapFlowKind Anc;
169 static const PcapFlowKind Data;
170};
171
172inline const PcapFlowKind PcapFlowKind::Unknown{0};
173inline const PcapFlowKind PcapFlowKind::Video{1};
174inline const PcapFlowKind PcapFlowKind::Audio{2};
175inline const PcapFlowKind PcapFlowKind::Anc{3};
176inline const PcapFlowKind PcapFlowKind::Data{4};
177
180PROMEKI_NAMESPACE_END
181
182#endif // PROMEKI_ENABLE_NETWORK