EMANE
1.2.1
transmissiontxstate.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2013-2014 - Adjacent Link LLC, Bridgewater, New Jersey
3
* Copyright (c) 2008 - DRS CenGen, LLC, Columbia, Maryland
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
*
10
* * Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in
14
* the documentation and/or other materials provided with the
15
* distribution.
16
* * Neither the name of DRS CenGen, LLC nor the names of its
17
* contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
* POSSIBILITY OF SUCH DAMAGE.
32
*/
33
34
#ifndef EMANEMODELSIEEE802ABGTRANSMISSIONTXSTATE_HEADER_
35
#define EMANEMODELSIEEE802ABGTRANSMISSIONTXSTATE_HEADER_
36
37
#include "
emane/types.h
"
38
39
#include "
downstreamqueue.h
"
40
41
namespace
EMANE
42
{
43
namespace
Models
44
{
45
namespace
IEEE80211ABG
46
{
47
class
MACLayer;
48
54
class
TransmissionTxState
55
{
56
public
:
57
virtual
~TransmissionTxState
();
58
59
virtual
bool
process
(
MACLayer
*,
DownstreamQueueEntry
&) = 0;
60
61
virtual
std::pair<TimePoint,bool>
getWaitTime
(
DownstreamQueueEntry
&) = 0;
62
63
virtual
void
update
(
MACLayer
*,
DownstreamQueueEntry
&);
64
65
virtual
const
char
*
statename
() = 0;
66
67
protected
:
68
TransmissionTxState
();
69
70
void
changeState
(
MACLayer
*,
TransmissionTxState
*);
71
};
72
}
73
}
74
}
75
#endif //EMANEMODELSIEEE802ABGTRANSMISSIONTXSTATE_HEADER_
types.h
EMANE::Models::IEEE80211ABG::DownstreamQueueEntry
structure defines the mac downstream packet queue entry
Definition:
downstreamqueueentry.h:52
EMANE::Models::IEEE80211ABG::TransmissionTxState
base class used to define the transitions for the mac tx states
Definition:
transmissiontxstate.h:54
EMANE::Models::IEEE80211ABG::TransmissionTxState::changeState
void changeState(MACLayer *, TransmissionTxState *)
Definition:
transmissiontxstate.cc:47
EMANE::Models::IEEE80211ABG::TransmissionTxState::statename
virtual const char * statename()=0
EMANE::Models::IEEE80211ABG::TransmissionTxState::process
virtual bool process(MACLayer *, DownstreamQueueEntry &)=0
EMANE::Models::IEEE80211ABG::TransmissionTxState::TransmissionTxState
TransmissionTxState()
Definition:
transmissiontxstate.cc:38
EMANE::Models::IEEE80211ABG::TransmissionTxState::update
virtual void update(MACLayer *, DownstreamQueueEntry &)
Definition:
transmissiontxstate.cc:54
EMANE::Models::IEEE80211ABG::TransmissionTxState::~TransmissionTxState
virtual ~TransmissionTxState()
Definition:
transmissiontxstate.cc:42
EMANE::Models::IEEE80211ABG::TransmissionTxState::getWaitTime
virtual std::pair< TimePoint, bool > getWaitTime(DownstreamQueueEntry &)=0
EMANE
Definition:
agent.h:43
downstreamqueue.h
EMANE::Models::IEEE80211ABG::MACLayer
IEEE 80211 ABG MAC implementation.
Definition:
models/mac/ieee80211abg/maclayer.h:104
src
models
mac
ieee80211abg
transmissiontxstate.h
Generated by
1.8.13