IBR-DTNSuite
0.12
Main Page
Namespaces
Classes
Files
File List
File Members
StatusReportBlock.h
Go to the documentation of this file.
1
/*
2
* StatusReportBlock.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 STATUSREPORTBLOCK_H_
23
#define STATUSREPORTBLOCK_H_
24
25
#include "
ibrdtn/data/AdministrativeBlock.h
"
26
#include "
ibrdtn/data/EID.h
"
27
#include "
ibrdtn/data/Number.h
"
28
#include "
ibrdtn/data/BundleID.h
"
29
#include "
ibrcommon/data/BLOB.h
"
30
#include "
ibrdtn/data/DTNTime.h
"
31
32
namespace
dtn
33
{
34
namespace
data
35
{
36
class
StatusReportBlock
:
public
AdministrativeBlock
37
{
38
public
:
39
enum
TYPE
40
{
41
RECEIPT_OF_BUNDLE
= 1 << 0,
42
CUSTODY_ACCEPTANCE_OF_BUNDLE
= 1 << 1,
43
FORWARDING_OF_BUNDLE
= 1 << 2,
44
DELIVERY_OF_BUNDLE
= 1 << 3,
45
DELETION_OF_BUNDLE
= 1 << 4
46
};
47
48
enum
REASON_CODE
49
{
50
NO_ADDITIONAL_INFORMATION
= 0x00,
51
LIFETIME_EXPIRED
= 0x01,
52
FORWARDED_OVER_UNIDIRECTIONAL_LINK
= 0x02,
53
TRANSMISSION_CANCELED
= 0x03,
54
DEPLETED_STORAGE
= 0x04,
55
DESTINATION_ENDPOINT_ID_UNINTELLIGIBLE
= 0x05,
56
NO_KNOWN_ROUTE_TO_DESTINATION_FROM_HERE
= 0x06,
57
NO_TIMELY_CONTACT_WITH_NEXT_NODE_ON_ROUTE
= 0x07,
58
BLOCK_UNINTELLIGIBLE
= 0x08
59
};
60
61
StatusReportBlock
();
62
virtual
~StatusReportBlock
();
63
64
virtual
void
read
(
const
dtn::data::PayloadBlock
&p)
throw
(WrongRecordException);
65
virtual
void
write
(
dtn::data::PayloadBlock
&p)
const
;
66
67
char
status
;
68
char
reasoncode
;
69
DTNTime
timeof_receipt
;
70
DTNTime
timeof_custodyaccept
;
71
DTNTime
timeof_forwarding
;
72
DTNTime
timeof_delivery
;
73
DTNTime
timeof_deletion
;
74
dtn::data::BundleID
bundleid
;
75
};
76
}
77
}
78
79
#endif
/* STATUSREPORTBLOCK_H_ */
ibrdtn
ibrdtn
data
StatusReportBlock.h
Generated on Thu Mar 27 2014 09:26:21 for IBR-DTNSuite by
1.8.4