FD.io VPP  v18.07.1-13-g909ba93
Vector Packet Processing
connection.hpp
Go to the documentation of this file.
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 #ifndef __VOM_CONNECTION_H__
17 #define __VOM_CONNECTION_H__
18 
19 #include <memory>
20 #include <string>
21 
22 /**
23  * Forward declarations
24  */
25 namespace vapi {
26 class Connection;
27 };
28 
29 namespace VOM {
30 /**
31  * A representation of the connection to VPP
32  */
34 {
35 public:
36  /**
37  * Constructor
38  */
39  connection();
40  /**
41  * Destructor
42  */
43  ~connection();
44 
45  /**
46  * Blocking [re]connect call - always eventually succeeds, or the
47  * universe expires. Not much this system can do without one.
48  */
49  int connect();
50 
51  /**
52  * Blocking disconnect
53  */
54  void disconnect();
55 
56  /**
57  * Retrun the VAPI context the commands will use
58  */
60 
61 private:
62  /**
63  * The VAPI connection context
64  */
65  std::unique_ptr<vapi::Connection> m_vapi_conn;
66 
67  /**
68  * The name of this application
69  */
70  const std::string m_app_name;
71 };
72 };
73 
74 /*
75  * fd.io coding-style-patch-verification: ON
76  *
77  * Local Variables:
78  * eval: (c-set-style "mozilla")
79  * End:
80  */
81 
82 #endif
Forward declarations.
Definition: vapi.hpp:44
A representation of the connection to VPP.
Definition: connection.hpp:33
Class representing a connection to VPP.
Definition: vapi.hpp:153
long ctx[MAX_CONNS]
Definition: main.c:126
The VPP Object Model (VOM) library.
Definition: acl_binding.cpp:19