src/node/channel.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sun, 18 Feb 2007 11:19:58 +0100
changeset 297 aee1c4c74800
parent 291 f5a98bae86c1
child 299 dd6d1a6d6eff
permissions -rw-r--r--
convert to new debug macros
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
291
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     2
/*
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     3
 * Copyright (c) 2007 University of Washington
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     4
 * All rights reserved.
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     5
 *
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License version 2 as
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     8
 * published by the Free Software Foundation;
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     9
 *
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    13
 * GNU General Public License for more details.
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    14
 *
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    16
 * along with this program; if not, write to the Free Software
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    18
 *
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    19
 * Author: Craig Dowell <craigdo@ee.washingon.edu>
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    20
 *
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    21
 *	Thu Feb 15 14:50:46 PST 2007 craigdo: Created.
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    22
 */
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    23
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    24
#include "ns3/debug.h"
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    25
#include "channel.h"
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    26
297
aee1c4c74800 convert to new debug macros
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 291
diff changeset
    27
NS_DEBUG_COMPONENT_DEFINE ("Channel");
291
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    28
297
aee1c4c74800 convert to new debug macros
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 291
diff changeset
    29
namespace ns3 {
291
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    30
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    31
Channel::Channel ()
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    32
{
297
aee1c4c74800 convert to new debug macros
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 291
diff changeset
    33
  NS_DEBUG ("Channel::Channel ()")
291
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    34
}
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    35
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    36
Channel::~Channel ()
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    37
{
297
aee1c4c74800 convert to new debug macros
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 291
diff changeset
    38
  NS_DEBUG ("Channel::~Channel ()")
291
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    39
}
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    40
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    41
  bool
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    42
Channel::Connect (PhysicalLayer &phys)
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    43
{
297
aee1c4c74800 convert to new debug macros
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 291
diff changeset
    44
  NS_DEBUG ("Channel::Connect (" << &phys << ")")
291
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    45
  m_physList.push_back(static_cast<PhysicalLayer *>(&phys));
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    46
  return true;
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    47
}
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    48
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    49
  bool
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    50
Channel::Propagate (Propagator &propagator)
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    51
{
297
aee1c4c74800 convert to new debug macros
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 291
diff changeset
    52
  NS_DEBUG ("Channel::Propagate (" << &propagator << ")")
291
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    53
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    54
  for (PhysicalLayerList::const_iterator i = m_physList.begin ();
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    55
       i != m_physList.end (); 
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    56
       i++)
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    57
    {
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    58
      (*i)->Receive (propagator);
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    59
    }
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    60
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    61
  return true;
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    62
}
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    63
f5a98bae86c1 large checkin-- bringing in serial device code
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    64
} // namespace ns3