neighbordb.h
上传用户:hzie11
上传日期:2013-10-07
资源大小:1487k
文件大小:2k
源码类别:

网络

开发平台:

C/C++

  1. /* This software was developed at the National Institute of Standards and
  2.  * Technology by employees of the Federal Government in the course of
  3.  * their official duties. Pursuant to title 17 Section 105 of the United
  4.  * States Code this software is not subject to copyright protection and
  5.  * is in the public domain.
  6.  * NIST assumes no responsibility whatsoever for its use by other parties,
  7.  * and makes no guarantees, expressed or implied, about its quality,
  8.  * reliability, or any other characteristic.
  9.  * <BR>
  10.  * We would appreciate acknowledgement if the software is used.
  11.  * <BR>
  12.  * NIST ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND
  13.  * DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING
  14.  * FROM THE USE OF THIS SOFTWARE.
  15.  * </PRE></P>
  16.  * @author  rouil
  17.  */
  18. #ifndef NEIGHBORDB_H
  19. #define NEIGHBORDB_H
  20. #include "neighborentry.h"
  21. #include "mac802_16pkt.h"
  22. /* This is the size of database allocated. Needs to be modified if 
  23.  * a node could have more entries
  24.  */
  25. #define DEFAULT_DB_SIZE 10
  26. /**
  27.  * The class is used to store and manipulate the list 
  28.  * of neighbors in a given node
  29.  */
  30. class NeighborDB {
  31.  public:
  32.   /** 
  33.    * Constructor
  34.    */
  35.   NeighborDB ();
  36.   /**
  37.    * Destructor
  38.    */
  39.   ~NeighborDB ();
  40.   /**
  41.    * Add an entry in the database
  42.    * @param nb The neighbor to add
  43.    */
  44.   void addNeighbor (NeighborEntry *nb);
  45.   /**
  46.    * Remove the entry associated with the given node
  47.    * @param nbid The neighbor id
  48.    */
  49.   void removeNeighbor (int nbid);
  50.   /**
  51.    * Return the number of neighbor in the list
  52.    * @return the number of neighbor in the list
  53.    */
  54.   int getNbNeighbor ();
  55.   /**
  56.    * Return the entry associated with the given node
  57.    * @param nbid The neighbor id
  58.    * @return the entry for the given node or NULL
  59.    */
  60.   NeighborEntry * getNeighbor (int nbid);
  61.   /**
  62.    * Return a pointer to the list of all neighbors
  63.    * @return a pointer to the list of all neighbors
  64.    */
  65.   NeighborEntry ** getNeighbors ();
  66.  protected:
  67.  private:
  68.   /**
  69.    * Current number of neighbor
  70.    */
  71.   int nbentry_;
  72.   /**
  73.    * Array of neighbors
  74.    */
  75.   NeighborEntry **nbs_;
  76.   
  77. };
  78. #endif