#ifndef _BIP_Engine_Port_HPP_
#define _BIP_Engine_Port_HPP_

// inherited classes
#include <PortItf.hpp>

class PortValue;
class BipError;

class Port : public virtual PortItf {
 public:
  // constructors
  Port(const string &name, const PortType &type);

  // destructor
  virtual ~Port();


  /**
   * \brief Performs the update of the port when it is involved in the executed
   * interaction.
   */
  virtual BipError &execute(PortValue& portValue) = 0;
};

#endif // _BIP_Engine_Port_HPP_
