src/lte/model/lte-pdcp-tag.cc
changeset 8402 d53afd161c0a
parent 8148 09e2d03022a2
child 8704 207fc5214d3c
equal deleted inserted replaced
8401:f977c29ea742 8402:d53afd161c0a
       
     1 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
       
     2 /*
       
     3  * Copyright (c) 2011 CTTC
       
     4  *
       
     5  * This program is free software; you can redistribute it and/or modify
       
     6  * it under the terms of the GNU General Public License version 2 as
       
     7  * published by the Free Software Foundation;
       
     8  *
       
     9  * This program is distributed in the hope that it will be useful,
       
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    12  * GNU General Public License for more details.
       
    13  *
       
    14  * You should have received a copy of the GNU General Public License
       
    15  * along with this program; if not, write to the Free Software
       
    16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
       
    17  *
       
    18  * Author: Jaume Nin <jaume.nin@cttc.es>
       
    19  *         Nicola Baldo <nbaldo@cttc.es>
       
    20  */
       
    21 
       
    22 #include "lte-pdcp-tag.h"
       
    23 #include "ns3/tag.h"
       
    24 #include "ns3/uinteger.h"
       
    25 
       
    26 namespace ns3 {
       
    27 
       
    28 NS_OBJECT_ENSURE_REGISTERED (PdcpTag);
       
    29 
       
    30 PdcpTag::PdcpTag ()
       
    31   : m_senderTimestamp (Seconds (0))
       
    32 {
       
    33   // Nothing to do here
       
    34 }
       
    35 
       
    36 
       
    37 PdcpTag::PdcpTag (Time senderTimestamp)
       
    38   : m_senderTimestamp (senderTimestamp)
       
    39 
       
    40 {
       
    41   // Nothing to do here
       
    42 }
       
    43 
       
    44 TypeId
       
    45 PdcpTag::GetTypeId (void)
       
    46 {
       
    47   static TypeId tid = TypeId ("ns3::PdcpTag")
       
    48     .SetParent<Tag> ()
       
    49     .AddConstructor<PdcpTag> ();
       
    50   return tid;
       
    51 }
       
    52 
       
    53 TypeId
       
    54 PdcpTag::GetInstanceTypeId (void) const
       
    55 {
       
    56   return GetTypeId ();
       
    57 }
       
    58 
       
    59 uint32_t
       
    60 PdcpTag::GetSerializedSize (void) const
       
    61 {
       
    62   return sizeof(Time);
       
    63 }
       
    64 
       
    65 void
       
    66 PdcpTag::Serialize (TagBuffer i) const
       
    67 {
       
    68   int64_t senderTimestamp = m_senderTimestamp.GetNanoSeconds ();
       
    69   i.Write ((const uint8_t *)&senderTimestamp, sizeof(int64_t));
       
    70 }
       
    71 
       
    72 void
       
    73 PdcpTag::Deserialize (TagBuffer i)
       
    74 {
       
    75   int64_t senderTimestamp;
       
    76   i.Read ((uint8_t *)&senderTimestamp, 8);
       
    77   m_senderTimestamp   = NanoSeconds (senderTimestamp);
       
    78 
       
    79 }
       
    80 
       
    81 void
       
    82 PdcpTag::Print (std::ostream &os) const
       
    83 {
       
    84   os << m_senderTimestamp;
       
    85 }
       
    86 
       
    87 } // namespace ns3
       
    88