#ifndef PHYSICALINTERFACE_H_
#define PHYSICALINTERFACE_H_

#include <iostream>
#include <string>
#include <map>

namespace cosi
{

namespace quantity
{

namespace onchipcommunication
{

class PhysicalInterface
{
public:
	PhysicalInterface();
	virtual ~PhysicalInterface();
	virtual int GetWidth() const ;
	virtual double GetSpeed() const ;
	virtual void SetSpeed(double pSpeed) ;
	virtual void SetWidth(int pWidth);
	virtual int GetNumberOfVirtualChannels() const ;
	virtual void SetNumberOfVirtualChannels(int pNchannels) ;
	virtual int GetBufferLength() const ;
	virtual void SetBufferLength(int pLength) ;
	bool operator==(const PhysicalInterface &pIf) ;
	friend std::ostream& operator<<(std::ostream &pOs, const PhysicalInterface &pP);
private:
	int mWidth ;
	double mSpeed ;
	int mNchannels ;
	int mLength ;
};

}

}

}

#endif /*PHYSICALINTERFACE_H_*/
