IBR-DTNSuite
0.12
Main Page
Namespaces
Classes
Files
File List
File Members
IBR-DTNSuite
Namespaces
Classes
Files
File List
daemon
ibrcommon
ibrdtn
ibrdtn
api
data
AdministrativeBlock.cpp
AdministrativeBlock.h
AgeBlock.cpp
AgeBlock.h
Block.cpp
Block.h
Bundle.cpp
Bundle.h
BundleBuilder.cpp
BundleBuilder.h
BundleFragment.cpp
BundleFragment.h
BundleID.cpp
BundleID.h
BundleList.cpp
BundleList.h
BundleMerger.cpp
BundleMerger.h
BundleSet.cpp
BundleSet.h
BundleSetImpl.cpp
BundleSetImpl.h
BundleString.cpp
BundleString.h
CompressedPayloadBlock.cpp
CompressedPayloadBlock.h
CustodySignalBlock.cpp
CustodySignalBlock.h
Dictionary.cpp
Dictionary.h
DTNTime.cpp
DTNTime.h
EID.cpp
EID.h
Endianess.cpp
Endianess.h
Exceptions.h
ExtensionBlock.cpp
ExtensionBlock.h
MemoryBundleSet.cpp
MemoryBundleSet.h
MetaBundle.cpp
MetaBundle.h
Number.h
PayloadBlock.cpp
PayloadBlock.h
PrimaryBlock.cpp
PrimaryBlock.h
SchedulingBlock.cpp
SchedulingBlock.h
ScopeControlHopLimitBlock.cpp
ScopeControlHopLimitBlock.h
SDNV.cpp
SDNV.h
Serializer.cpp
Serializer.h
StatusReportBlock.cpp
StatusReportBlock.h
StreamBlock.cpp
StreamBlock.h
TrackingBlock.cpp
TrackingBlock.h
security
streams
utils
config.h
dummy.cpp
ibrdtn.h
tools
File Members
EID.h
Go to the documentation of this file.
1
/*
2
* EID.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 EID_H_
23
#define EID_H_
24
25
#include <string>
26
#include <
ibrcommon/Exceptions.h
>
27
#include <
ibrdtn/data/Number.h
>
28
#include <map>
29
30
namespace
dtn
31
{
32
namespace
data
33
{
34
class
EID
35
{
36
public
:
37
enum
Scheme
{
38
SCHEME_DTN
= 0,
39
SCHEME_CBHE
= 1,
40
SCHEME_EXTENDED
= 2
41
};
42
46
static
Scheme
resolveScheme
(
const
std::string &s);
47
51
static
const
std::string
getSchemeName
(
const
Scheme
s);
52
56
static
Number
getApplicationNumber
(
const
std::string &app);
57
58
EID
();
59
EID
(
const
std::string &scheme,
const
std::string &ssp);
60
EID
(
const
std::string &value);
61
67
EID
(
const
dtn::data::Number
&node,
const
dtn::data::Number
&application);
68
69
virtual
~EID
();
70
71
bool
operator==
(
const
EID
&other)
const
;
72
73
bool
operator==
(
const
std::string &other)
const
;
74
75
bool
operator!=
(
const
EID
&other)
const
;
76
77
bool
sameHost
(
const
std::string &other)
const
;
78
bool
sameHost
(
const
EID
&other)
const
;
79
80
bool
operator<
(
const
EID
&other)
const
;
81
bool
operator>
(
const
EID
&other)
const
;
82
83
std::string
getString
()
const
;
84
85
void
setApplication
(
const
dtn::data::Number
&app)
throw
();
86
void
setApplication
(
const
std::string &app)
throw
();
87
std::string
getApplication
()
const
throw ();
88
89
bool
isApplication
(const dtn::data::
Number
&app) const throw ();
90
bool
isApplication
(const std::
string
&app) const throw ();
91
92
std::
string
getHost
() const throw ();
93
const std::
string
getScheme
() const;
94
const std::
string
getSSP
() const;
95
96
std::
string
getDelimiter
() const;
97
102
EID
getNode
() const throw ();
103
104
bool
hasApplication
() const;
105
110
bool
isCompressable
() const;
111
116
bool
isNone
() const;
117
123
typedef std::pair<
Number
, Number>
Compressed
;
124
Compressed
getCompressed
() const;
125
126
private:
130
EID
(const
Scheme
scheme_type, const std::
string
&scheme, const std::
string
&ssp, const std::
string
&application);
131
135
static
void
extractCBHE(const std::
string
&ssp, Number &node, Number &app);
136
140
static
void
extractDTN(const std::
string
&ssp, std::
string
&node, std::
string
&application);
141
142
// abstract values
143
Scheme
_scheme_type;
144
std::
string
_scheme;
145
std::
string
_ssp;
146
147
// DTN scheme
148
// the ssp carries the node part
149
std::
string
_application;
150
151
// CBHE scheme
152
Number _cbhe_node;
153
Number _cbhe_application;
154
155
// well-known CBHE numbers
156
typedef std::map<std::
string
, Number> cbhe_map;
157
static cbhe_map& getApplicationMap();
158
};
159
}
160
}
161
162
#endif
/* EID_H_ */
ibrdtn
ibrdtn
data
EID.h
Generated on Thu Mar 27 2014 09:26:21 for IBR-DTNSuite by
1.8.4