#ifndef DELAYMODEL_H_
#define DELAYMODEL_H_

#include <map>
#include <set>
#include "quantities/WiringPath.h"
#include "quantities/onchipcommunication/LinkParameter.h"
#include "quantities/onchipcommunication/Interface.h"
#include "quantities/onchipcommunication/NodeParameter.h"
#include "quantities/onchipcommunication/Ports.h"
#include "quantities/CommoditySet.h"
#include "quantities/Name.h"

namespace cosi {

namespace models {

namespace onchipcommunication {

class LinkDelayModel {
public:
	LinkDelayModel();
	virtual ~LinkDelayModel();
	virtual double GetDelay(Name pName,
			cosi::quantity::onchipcommunication::Interface pSource,
			cosi::quantity::onchipcommunication::Interface pDest,
			WiringPath pPath, cosi::quantity::onchipcommunication::LinkParameter pParam) = 0;
};

}

}

}

#endif /*DELAYMODEL_H_*/
