#ifndef INTERFACE_H_
#define INTERFACE_H_


#include <iostream>
#include <string>
#include <map>
#include "PhysicalInterface.h"

namespace cosi {

namespace quantity {

namespace onchipcommunication {

class Interface : public PhysicalInterface {
public:
	Interface();
	virtual ~Interface();
	enum tDirection {IN,OUT,INOUT};
	tDirection GetDirection() const;
	void SetDirection(tDirection pDir);
	std::string GetName() const;
	void SetName(std::string pName);
	bool operator==(const Interface &pP) const;
	bool operator!=(const Interface &pP) const;
	friend std::ostream& operator<<(std::ostream &pOs, const Interface &pP);
private:
	std::string mName;
	tDirection mDir;
};

}

}

}

#endif /*INTERFACE_H_*/
