packet-stamp.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /* -*- c++ -*-
  2.    packet-stamp.h
  3.    $Id: packet-stamp.h,v 1.3 1999/03/13 03:52:58 haoboy Exp $
  4.    Information carried by a packet to allow a receive to decide if it
  5.    will recieve the packet or not.
  6. */
  7. #ifndef _cmu_packetstamp_h_
  8. #define _cmu_packetstamp_h_
  9. class MobileNode;
  10. /* to avoid a pretty wild circular dependence among header files
  11.    (between packet.h and queue.h), I can't do the #include here:
  12.    #include <cmu/node.h>
  13.    Since PacketStamp is just a container class, it doesn't really matter .
  14.    -dam 8/8/98
  15.    */
  16. #include <antenna.h>
  17. class PacketStamp {
  18. public:
  19.   PacketStamp() : ant(0), node(0), Pr(-1), lambda(-1) { }
  20.   void init(const PacketStamp *s) {
  21.   Antenna* ant;
  22.   if (s->ant != NULL)
  23.   ant = s->ant->copy();
  24.   else
  25.   ant = 0;
  26.   
  27.   //Antenna *ant = (s->ant) ? s->ant->copy(): 0;
  28.   stamp(s->node, ant, s->Pr, s->lambda);
  29.   }
  30.   void stamp(MobileNode *n, Antenna *a, double xmitPr, double lam) {
  31.     ant = a;
  32.     node = n;
  33.     Pr = xmitPr;
  34.     lambda = lam;
  35.   }
  36.   inline Antenna * getAntenna() {return ant;}
  37.   inline MobileNode * getNode() {return node;}
  38.   inline double getTxPr() {return Pr;}
  39.   inline double getLambda() {return lambda;}
  40.   /* WILD HACK: The following two variables are a wild hack.
  41.      They will go away in the next release...
  42.      They're used by the mac-802_11 object to determine
  43.      capture.  This will be moved into the net-if family of 
  44.      objects in the future. */
  45.   double RxPr; // power with which pkt is received
  46.   double CPThresh; // capture threshold for recving interface
  47. protected:
  48.   Antenna       *ant;
  49.   MobileNode *node;
  50.   double        Pr; // power pkt sent with
  51.   double        lambda;         // wavelength of signal
  52. };
  53. #endif /* !_cmu_packetstamp_h_ */