#ifndef NETWORKDELAY_H_
#define NETWORKDELAY_H_

#include "networks/wiredbas/WiredBasImplementation.h"
#include "quantities/RealDelay.h"
#include "float.h"

namespace cosi {

namespace models {

namespace wiredbas {

class NetworkDelay {
public:
	NetworkDelay();

	virtual ~NetworkDelay();

	virtual RealDelay Get(cosi::commstruct::wiredbas::Implementation pC,Vertex Src, std::string Dest,Vertex SrcId,Vertex DestId) = 0;

	virtual RealDelay Get(cosi::commstruct::wiredbas::Implementation* pC,Vertex Src, std::string Dest,Vertex SrcId,Vertex DestId) = 0;

	virtual double GetValue(cosi::commstruct::wiredbas::Implementation pC,Vertex Src, std::string Dest,Vertex SrcId,Vertex DestId) = 0;

	virtual double GetValue(cosi::commstruct::wiredbas::Implementation* pC,Vertex Src, std::string Dest,Vertex SrcId,Vertex DestId) = 0;
};

}

}

}

#endif /*NETWORKDELAY_H_*/
