vxlan: vxlan/vxlan.api API cleanup
[vpp.git] / extras / vom / vom / acl_types.cpp
1 /*
2  * Copyright (c) 2017 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 #include "vom/acl_types.hpp"
17
18 namespace VOM {
19 namespace ACL {
20 const action_t action_t::PERMITANDREFLEX(2, "permitandreflex");
21 const action_t action_t::PERMIT(1, "permit");
22 const action_t action_t::DENY(0, "deny");
23
24 action_t::action_t(int v, const std::string s)
25   : enum_base(v, s)
26 {
27 }
28
29 const action_t&
30 action_t::from_int(uint8_t i)
31 {
32   if (i == 2)
33     return action_t::PERMITANDREFLEX;
34   else if (i)
35     return action_t::PERMIT;
36
37   return action_t::DENY;
38 }
39
40 const action_t&
41 action_t::from_bool(bool b, uint8_t c)
42 {
43   if (b) {
44     if (c)
45       return action_t::PERMITANDREFLEX;
46     return action_t::PERMIT;
47   }
48   return action_t::DENY;
49 }
50 }
51 }
52
53 /*
54  * fd.io coding-style-patch-verification: ON
55  *
56  * Local Variables:
57  * eval: (c-set-style "mozilla")
58  * End:
59  */