TTEthernet Model for INET Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
DoubleBuffer.cc
Go to the documentation of this file.
1 //
2 // This program is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU Lesser General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6 //
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU Lesser General Public License for more details.
11 //
12 // You should have received a copy of the GNU Lesser General Public License
13 // along with this program. If not, see http://www.gnu.org/licenses/.
14 //
15 
16 #include "DoubleBuffer.h"
17 
18 using namespace ::TTEthernetModel;
19 
20 DoubleBuffer::DoubleBuffer()
21 {
22  frame = NULL;
23 }
24 
25 DoubleBuffer::~DoubleBuffer()
26 {
27  delete frame;
28 }
29 
30 void DoubleBuffer::enqueue(EtherFrame *newFrame)
31 {
32  if (frame != NULL)
33  delete frame;
34  else
35  {
36  setIsEmpty(newFrame == NULL);
37  }
38  frame = newFrame;
39 }
40 
41 EtherFrame * DoubleBuffer::dequeue()
42 {
43  if (frame)
44  return frame->dup();
45  else
46  return NULL;
47 }