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
BundleSetImpl.h
Go to the documentation of this file.
1
/*
2
* BundleSetImpl.h
3
*
4
* Copyright (C) 2013 IBR, TU Braunschweig
5
*
6
* Written-by: David Goltzsche <goltzsch@ibr.cs.tu-bs.de>
7
* Written-by: Johannes Morgenroth <morgenroth@ibr.cs.tu-bs.de>
8
*
9
* Licensed under the Apache License, Version 2.0 (the "License");
10
* you may not use this file except in compliance with the License.
11
* You may obtain a copy of the License at
12
*
13
* http://www.apache.org/licenses/LICENSE-2.0
14
*
15
* Unless required by applicable law or agreed to in writing, software
16
* distributed under the License is distributed on an "AS IS" BASIS,
17
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
* See the License for the specific language governing permissions and
19
* limitations under the License.
20
*
21
* Created on: 04.04.2013
22
*/
23
24
#ifndef BUNDLESETIMPL_H_
25
#define BUNDLESETIMPL_H_
26
27
#include "
ibrdtn/data/MetaBundle.h
"
28
#include <
ibrcommon/data/BloomFilter.h
>
29
#include <set>
30
31
namespace
dtn
32
{
33
namespace
data
34
{
35
class
BundleSetImpl
36
{
37
public
:
41
virtual
~BundleSetImpl
() = 0;
42
46
virtual
refcnt_ptr<BundleSetImpl>
copy
()
const
= 0;
47
52
virtual
void
assign
(
const
refcnt_ptr<BundleSetImpl>
&) = 0;
53
54
virtual
void
add
(
const
dtn::data::MetaBundle
&bundle)
throw
() = 0;
55
virtual
void
clear
()
throw
() = 0;
56
virtual
bool
has
(
const
dtn::data::BundleID
&bundle)
const
throw
() = 0;
57
58
virtual
void
expire
(
const
Timestamp
timestamp) = 0;
59
63
virtual
Size
size
()
const
throw
() = 0;
64
68
virtual
Length
getLength
()
const
throw
() = 0;
69
70
virtual
const
ibrcommon::BloomFilter
&
getBloomFilter
()
const
throw
() = 0;
71
72
virtual
std::set<dtn::data::MetaBundle>
getNotIn
(
const
ibrcommon::BloomFilter
&filter)
const
throw
() = 0;
73
77
virtual
void
sync
() throw () { };
78
79
virtual
std::ostream&
serialize
(std::ostream &stream)
const
= 0;
80
virtual
std::istream&
deserialize
(std::istream &stream) = 0;
81
82
protected
:
83
class
ExpiringBundle
84
{
85
public
:
86
ExpiringBundle
(
const
MetaBundle
&b);
87
virtual
~ExpiringBundle
();
88
89
bool
operator!=
(
const
ExpiringBundle
& other)
const
;
90
bool
operator==
(
const
ExpiringBundle
& other)
const
;
91
bool
operator<
(
const
ExpiringBundle
& other)
const
;
92
bool
operator>
(
const
ExpiringBundle
& other)
const
;
93
94
const
dtn::data::MetaBundle
&
bundle
;
95
};
96
};
97
}
/* namespace data */
98
}
/* namespace dtn */
99
#endif
/* BUNDLESETIMPL_H_ */
ibrdtn
ibrdtn
data
BundleSetImpl.h
Generated on Thu Mar 27 2014 09:26:21 for IBR-DTNSuite by
1.8.4