YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
QosStyle.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_OS_QOSSTYLE_H
7#define YARP_OS_QOSSTYLE_H
8
9#include <yarp/os/api.h>
10#include <yarp/conf/numeric.h>
11
12#include <string>
13
14namespace yarp::os {
15
23{
24public:
30 {
31 PacketPriorityInvalid = -1,
32 PacketPriorityNormal = 0,
33 PacketPriorityLow = 10,
34 PacketPriorityHigh = 36,
35 PacketPriorityCritical = 44,
36 PacketPriorityUndefined = 0x7FFF
37 };
38
39
45 {
46 DSCP_Invalid = -1,
47 DSCP_CS0 = 0,
48 DSCP_CS1 = 8,
49 DSCP_CS2 = 16,
50 DSCP_CS3 = 24,
51 DSCP_CS4 = 32,
52 DSCP_CS5 = 40,
53 DSCP_CS6 = 48,
54 DSCP_CS7 = 56,
55 DSCP_AF11 = 10,
56 DSCP_AF12 = 12,
57 DSCP_AF13 = 14,
58 DSCP_AF21 = 18,
59 DSCP_AF22 = 20,
60 DSCP_AF23 = 22,
61 DSCP_AF31 = 26,
62 DSCP_AF32 = 28,
63 DSCP_AF33 = 30,
64 DSCP_AF41 = 34,
65 DSCP_AF42 = 36,
66 DSCP_AF43 = 38,
67 DSCP_VA = 44,
68 DSCP_EF = 46,
69 DSCP_Undefined = 0x7FFF
70 };
71
72
76 explicit QosStyle();
77
78
83 void setPacketPriorityByDscp(PacketPriorityDSCP dscp);
84
85
90 void setPacketPriorityByLevel(PacketPriorityLevel level);
91
92
98 {
99 packetPriority = tos;
100 }
101
102
120 bool setPacketPriority(const std::string& priority);
121
122
127 void setThreadPriority(int priority)
128 {
129 threadPriority = priority;
130 }
131
132
137 void setThreadPolicy(int policy)
138 {
139 threadPolicy = policy;
140 }
141
142
148 {
149 return packetPriority;
150 }
151
152
157 PacketPriorityDSCP getPacketPriorityAsDSCP() const;
158
159
164 PacketPriorityLevel getPacketPriorityAsLevel() const;
165
166
172 {
173 return threadPriority;
174 }
175
176
181 int getThreadPolicy() const
182 {
183 return threadPolicy;
184 }
185
186
192 static PacketPriorityDSCP getDSCPByVocab(yarp::conf::vocab32_t vocab);
193
194
200 static PacketPriorityLevel getLevelByVocab(yarp::conf::vocab32_t vocab);
201
202
203private:
204 int threadPriority;
205 int threadPolicy;
206 int packetPriority;
207};
208
209} // namespace yarp::os
210
211#endif // YARP_OS_QOSSTYLE_H
A mini-server for performing network communication in the background.
Preferences for the port's Quality of Service.
Definition QosStyle.h:23
int getThreadPolicy() const
returns the communication thread scheduling policy
Definition QosStyle.h:181
void setThreadPriority(int priority)
sets the communication thread priority level
Definition QosStyle.h:127
PacketPriorityDSCP
The PacketPriorityDSCP defines the packets quality of service (priority) using DSCP.
Definition QosStyle.h:45
void setPacketPrioritybyTOS(int tos)
sets the packet priority given as TOS value
Definition QosStyle.h:97
int getPacketPriorityAsTOS() const
returns the packet TOS value
Definition QosStyle.h:147
int getThreadPriority() const
returns the communication thread priority level
Definition QosStyle.h:171
void setThreadPolicy(int policy)
sets the communication thread scheduling policy
Definition QosStyle.h:137
PacketPriorityLevel
The PacketPriorityLevel defines the packets quality of service (priority) levels.
Definition QosStyle.h:30
std::int32_t vocab32_t
Definition numeric.h:78
An interface to the operating system, including Port based communication.
#define YARP_os_API
Definition api.h:18