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

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * Copyright (c) 2007 Regents of the SIGNET lab, University of Padova.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. Neither the name of the University of Padova (SIGNET lab) nor the 
  14.  *    names of its contributors may be used to endorse or promote products 
  15.  *    derived from this software without specific prior written permission.
  16.  *
  17.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
  18.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
  19.  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  20.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
  21.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  22.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
  23.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
  24.  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
  25.  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
  26.  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  27.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28.  */
  29. #include "Position.h"
  30. /** 
  31.  * Impements the position interface
  32.  * 
  33.  *
  34.  * @author Simone Merlin
  35.  * @see Position 
  36.  *   
  37.  */
  38. class NSNode : public CPosition {
  39. private:
  40. NSNode* prev; /**< a pointer to the next node in the list */
  41. NSNode* next; /**< a pointer to the prewvious node in the list */
  42. Object* elem; /**< a pointer to the element in the node */
  43. public:
  44. //Costruttore
  45.  
  46. /** 
  47.  * Constructor: creates a new node and insert in the list. Links to the 
  48.  * prevous and next nodes are specified
  49.  *
  50.  * @param newPrev  the position pointer of the previuos node, 
  51.  * @param newNext  the position pointer of the next node 
  52.  * @param elem  te object to be embedded
  53.  *   
  54.  */
  55. NSNode (NSNode* newPrev,NSNode* newNext,Object* elem) ;
  56.  NSNode() ;
  57.    ~NSNode() ;
  58. //Metodi d'interfaccia
  59. public:
  60. /** 
  61.  * returns a pointer to the element in the node
  62.  *
  63.  * @return a pointer to the element, 
  64.  */
  65. Object* element();
  66. //Metodi di lettura
  67. /** 
  68.  * returns a pointer to the next node
  69.  *
  70.  * @return a pointer to the next node, 
  71.  */
  72. NSNode* getNext();
  73. /** 
  74.  * returns a pointer to the previous node
  75.  *
  76.  * @return a pointer to the previous  node, 
  77.  */
  78. NSNode* getPrev();
  79. //Metodi scrittori
  80. /** 
  81.  * set the position of the next node
  82.  *
  83.  * @param newnext apointer to the position of the next node 
  84.  */
  85. void setNext(NSNode* newnext);
  86. /** 
  87.  * set the position of the previous node
  88.  *
  89.  * @param newprew a pointer toi the  position of the previous node 
  90.  */
  91. void setPrev(NSNode* newprev);
  92. /** 
  93.  * set the element
  94.  *
  95.  * @param newElem a pointer to the elemet to be inserted
  96.  */
  97. void setElement(Object* newElem);
  98. };