IBR-DTNSuite
0.12
Main Page
Namespaces
Classes
Files
File List
File Members
vinterface.h
Go to the documentation of this file.
1
/*
2
* vinterface.h
3
*
4
* Copyright (C) 2011 IBR, TU Braunschweig
5
*
6
* Written-by: Johannes Morgenroth <morgenroth@ibr.cs.tu-bs.de>
7
*
8
* Licensed under the Apache License, Version 2.0 (the "License");
9
* you may not use this file except in compliance with the License.
10
* You may obtain a copy of the License at
11
*
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
19
*
20
*/
21
22
#ifndef VINTERFACE_H_
23
#define VINTERFACE_H_
24
25
#include "
ibrcommon/net/vaddress.h
"
26
27
#include <list>
28
#include <string>
29
#include <stdint.h>
30
31
namespace
ibrcommon
32
{
33
class
LinkManagerEvent;
34
35
class
vinterface
36
{
37
public
:
38
class
interface_not_set
:
public
Exception
39
{
40
public
:
41
interface_not_set
(
string
error
=
"interface is not specified"
) :
Exception
(
error
)
42
{};
43
};
44
45
const
static
std::string
LOOPBACK
;
46
const
static
std::string
ANY
;
47
48
vinterface
();
49
vinterface
(
const
std::string &name);
50
#ifdef __WIN32__
51
vinterface
(
const
std::string &name,
const
std::wstring &friendlyName);
52
#endif
53
virtual
~vinterface
();
54
55
bool
isLoopback
()
const
;
56
bool
isAny
()
const
;
57
58
uint32_t
getIndex
()
const
;
59
const
std::list<vaddress>
getAddresses
(
const
std::string &scope =
""
)
const
;
60
const
std::string
toString
()
const
;
61
bool
empty
()
const
;
62
bool
up
()
const
;
63
64
#ifdef __WIN32__
65
const
std::wstring& getFriendlyName()
const
;
66
#endif
67
68
bool
operator<
(
const
vinterface
&obj)
const
;
69
bool
operator==
(
const
vinterface
&obj)
const
;
70
bool
operator!=
(
const
vinterface
&obj)
const
;
71
72
void
eventNotify
(
const
LinkManagerEvent &evt);
73
74
private
:
75
std::string _name;
76
#ifdef __WIN32__
77
std::wstring _friendlyName;
78
#endif
79
};
80
}
81
82
#endif
/* VINTERFACE_H_ */
ibrcommon
ibrcommon
net
vinterface.h
Generated on Thu Mar 27 2014 09:26:20 for IBR-DTNSuite by
1.8.4