#ifndef ARCNETCONTROLLER_H_
#define ARCNETCONTROLLER_H_

#include "ArcnetNode.h"

namespace cosi {

namespace library {

namespace wiredbas {

class ArcnetController : public cosi::library::wiredbas::ArcnetNode {
public:
	ArcnetController();
	virtual ~ArcnetController();
	cosi::commstruct::wiredbas::PlatformInstance* GetPlatformInstance(int V,
			Position pP);
	cosi::commstruct::wiredbas::Implementation* GetImplementationInstance(
			int V, Position pP, ThreadSet pThreads, TransferTable pT);

	double GetCost();
	RealDelay GetDelay(Vertex NodeId,
					cosi::commstruct::wiredbas::Implementation* pI, Vertex Src,
					Vertex Dest) ;
		double GetDelayValue(Vertex NodeId,
					cosi::commstruct::wiredbas::Implementation* pI, Vertex Src,
					Vertex Dest);

	static std::string ComponentName;
	static std::string ComponentType;
};

}

}

}

#endif /*ARCNETCONTROLLER_H_*/
