blob: 0dc01845eb8d7fefd33975bfa56e5d2bcaf83fc5 [file] [log] [blame]
Neale Ranns812ed392017-10-16 04:20:13 -07001/*
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 <string>
20
21#include <vapi/vapi.hpp>
22
23namespace VOM {
24/**
25 * A representation of the connection to VPP
26 */
27class connection
28{
29public:
30 /**
31 * Constructor
32 */
33 connection();
34 /**
35 * Destructor
36 */
37 ~connection();
38
39 /**
40 * Blocking [re]connect call - always eventually succeeds, or the
41 * universe expires. Not much this system can do without one.
42 */
43 void connect();
44
45 /**
46 * Blocking disconnect
47 */
48 void disconnect();
49
50 /**
51 * Retrun the VAPI context the commands will use
52 */
53 vapi::Connection& ctx();
54
55private:
56 /**
57 * The VAPI connection context
58 */
59 vapi::Connection m_vapi_conn;
60
61 /**
62 * The name of this application
63 */
64 const std::string m_app_name;
65};
66};
67
68/*
69 * fd.io coding-style-patch-verification: ON
70 *
71 * Local Variables:
72 * eval: (c-set-style "mozilla")
73 * End:
74 */
75
76#endif