#ifndef INSTANTIABLELINK_H_
#define INSTANTIABLELINK_H_

#include <list>
#include "libraries/Link.h"
#include "networks/wiredbas/WiredBasPlatformInstance.h"
#include "networks/wiredbas/WiredBasImplementation.h"
#include "quantities/WiringPath.h"
#include "quantities/Position.h"


namespace cosi
{

namespace library
{

namespace wiredbas
{

class InstantiableLink : public cosi::library::Link
{
public:

	InstantiableLink();

	virtual ~InstantiableLink();

	virtual cosi::commstruct::wiredbas::PlatformInstance* GetPlatformInstance(int U,std::string pPortsU, int V, std::string pPortV) =0;

	virtual cosi::commstruct::wiredbas::Implementation* GetImplementationInstance( int U,std::string pPortsU, int V,std::string pPortV,WiringPath pPath) =0;

};

}

}

}

#endif /*INSTANTIABLELINK_H_*/
