//---------------------------------------------------------------------------

#ifndef NodeH
#define NodeH
   
class Signal;

class Node {
  friend class Network;
  protected:
	  PLA data;					// the PLA
	  unsigned int index;		// index of the node, if the network is indexed
	  unsigned int level;		// level of the node. 0 = undefined

	  float delay;		// delay of the node. -1 = undefined
	  float netdelay;	// delay in the network. -1 = undefined 
  public:
      int tmp;			// general purpose variable. Must not be modified by kernel
	  int tmp2;			// general purpose variable. Must not be modified by kernel

	  Node( PLA &_pla );
	  Node( SoPLA &_pla );
	  ~Node();


	  // getters & setters
	  unsigned int inputs(void) const { return data.inputs(); };
	  unsigned int outputs(void) const { return data.outputs(); };
	  PLA *getData(void) { return &data; };
	  const PLA &getConstDataRef(void) const { return data; };

};






//---------------------------------------------------------------------------
#endif
