IBR-DTN
1.0.0
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_ */
dtn::data::StatusReportBlock::TRANSMISSION_CANCELED
Definition:
StatusReportBlock.h:53
dtn::data::StatusReportBlock::NO_ADDITIONAL_INFORMATION
Definition:
StatusReportBlock.h:50
DTNTime.h
dtn::data::StatusReportBlock::RECEIPT_OF_BUNDLE
Definition:
StatusReportBlock.h:41
dtn::data::StatusReportBlock::DELIVERY_OF_BUNDLE
Definition:
StatusReportBlock.h:44
dtn::data::AdministrativeBlock
Definition:
AdministrativeBlock.h:17
dtn::data::StatusReportBlock::bundleid
dtn::data::BundleID bundleid
Definition:
StatusReportBlock.h:74
dtn::data::BundleID
Definition:
BundleID.h:33
dtn::data::DTNTime
Definition:
DTNTime.h:32
dtn::data::StatusReportBlock::DELETION_OF_BUNDLE
Definition:
StatusReportBlock.h:45
dtn::data::StatusReportBlock::read
virtual void read(const dtn::data::PayloadBlock &p)
Definition:
StatusReportBlock.cpp:84
dtn::data::StatusReportBlock::write
virtual void write(dtn::data::PayloadBlock &p) const
Definition:
StatusReportBlock.cpp:44
dtn::data::StatusReportBlock::timeof_delivery
DTNTime timeof_delivery
Definition:
StatusReportBlock.h:72
AdministrativeBlock.h
dtn::data::StatusReportBlock::NO_KNOWN_ROUTE_TO_DESTINATION_FROM_HERE
Definition:
StatusReportBlock.h:56
dtn::data::StatusReportBlock::StatusReportBlock
StatusReportBlock()
Definition:
StatusReportBlock.cpp:33
dtn::data::StatusReportBlock
Definition:
StatusReportBlock.h:36
Number.h
BundleID.h
dtn::data::StatusReportBlock::timeof_forwarding
DTNTime timeof_forwarding
Definition:
StatusReportBlock.h:71
dtn::data::StatusReportBlock::timeof_deletion
DTNTime timeof_deletion
Definition:
StatusReportBlock.h:73
dtn::data::StatusReportBlock::REASON_CODE
REASON_CODE
Definition:
StatusReportBlock.h:48
dtn::data::StatusReportBlock::CUSTODY_ACCEPTANCE_OF_BUNDLE
Definition:
StatusReportBlock.h:42
dtn::data::StatusReportBlock::timeof_receipt
DTNTime timeof_receipt
Definition:
StatusReportBlock.h:69
dtn::data::PayloadBlock
Definition:
PayloadBlock.h:35
dtn::data::StatusReportBlock::FORWARDING_OF_BUNDLE
Definition:
StatusReportBlock.h:43
dtn::data::StatusReportBlock::timeof_custodyaccept
DTNTime timeof_custodyaccept
Definition:
StatusReportBlock.h:70
dtn::data::StatusReportBlock::~StatusReportBlock
virtual ~StatusReportBlock()
Definition:
StatusReportBlock.cpp:40
dtn::data::StatusReportBlock::DEPLETED_STORAGE
Definition:
StatusReportBlock.h:54
dtn::data::StatusReportBlock::TYPE
TYPE
Definition:
StatusReportBlock.h:39
dtn::data::StatusReportBlock::reasoncode
char reasoncode
Definition:
StatusReportBlock.h:68
dtn::data::StatusReportBlock::FORWARDED_OVER_UNIDIRECTIONAL_LINK
Definition:
StatusReportBlock.h:52
dtn::data::StatusReportBlock::NO_TIMELY_CONTACT_WITH_NEXT_NODE_ON_ROUTE
Definition:
StatusReportBlock.h:57
dtn::data::StatusReportBlock::DESTINATION_ENDPOINT_ID_UNINTELLIGIBLE
Definition:
StatusReportBlock.h:55
dtn::data::StatusReportBlock::status
char status
Definition:
StatusReportBlock.h:67
dtn::data::StatusReportBlock::BLOCK_UNINTELLIGIBLE
Definition:
StatusReportBlock.h:58
EID.h
dtn::data::StatusReportBlock::LIFETIME_EXPIRED
Definition:
StatusReportBlock.h:51
ibrdtn
ibrdtn
data
StatusReportBlock.h
Generated on Sun Jan 4 2015 15:27:34 for IBR-DTN by
1.8.6