#ifndef HOAREAMODEL_H_
#define HOAREAMODEL_H_

#include <vector>
#include "models/onchipcommunication/common/AreaModel.h"
#include "io/onchipcommunication/HoOrionModelParser.h"
#include "include/onchipcommunication/typedefs.h"

namespace cosi {

namespace models {

namespace onchipcommunication {


class HoAreaModel : public LinkAreaModel {
public:

	HoAreaModel(cosi::library::onchipcommunication::Technology pTech);

	virtual ~HoAreaModel();

	double GetDeviceArea(Name pName,
			cosi::quantity::onchipcommunication::Interface pSource,
			cosi::quantity::onchipcommunication::Interface pDest,
			WiringPath pPath,
			cosi::quantity::onchipcommunication::LinkParameter pParam);
	double GetWiringArea(Name pName,
				cosi::quantity::onchipcommunication::Interface pSource,
				cosi::quantity::onchipcommunication::Interface pDest,
				WiringPath pPath,
				cosi::quantity::onchipcommunication::LinkParameter pParam);

private:
	double mHopt;
	double mKopt;
	double mWmin;
	double mR0 ;
	double mC0;
	double mCp;
	std::vector<double> mR;
	std::vector<double> mC;
	std::vector<double> mPitch;

};

}

}

}

#endif /*HoAREAMODEL_H_*/
