1 /*
2 * Copyright 2014 The Netty Project
3 *
4 * The Netty Project licenses this file to you under the Apache License, version 2.0 (the
5 * "License"); you may not use this file except in compliance with the License. You may obtain a
6 * copy of the License at:
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software distributed under the License
11 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 * or implied. See the License for the specific language governing permissions and limitations under
13 * the License.
14 */
15
16 package io.netty.handler.codec.mqtt;
17
18 public enum MqttQoS {
19 AT_MOST_ONCE(0),
20 AT_LEAST_ONCE(1),
21 EXACTLY_ONCE(2),
22 FAILURE(0x80);
23
24 private final int value;
25
26 MqttQoS(int value) {
27 this.value = value;
28 }
29
30 public int value() {
31 return value;
32 }
33
34 public static MqttQoS valueOf(int value) {
35 switch (value) {
36 case 0:
37 return AT_MOST_ONCE;
38 case 1:
39 return AT_LEAST_ONCE;
40 case 2:
41 return EXACTLY_ONCE;
42 case 0x80:
43 return FAILURE;
44 default:
45 throw new IllegalArgumentException("invalid QoS: " + value);
46 }
47 }
48 }