#ifndef WIREDBASSPECIFICAION_H_
#define WIREDBASSPECIFICAION_H_

#include <string>
#include "quantities/Name.h"
#include "quantities/Type.h"
#include "quantities/Position.h"
#include "quantities/Ports.h"
#include "quantities/RealLatency.h"
#include "quantities/ThreadSet.h"
#include "label/Label.hpp"
#include "core/CommunicationStructure.hpp"

namespace cosi {

namespace commstruct {

namespace wiredbas {

/**	Type is the component type and will be used to select a component from the library
 * 	Position is the position of nodes.
 * 	Ports is the port of each node.
 *
 *
 * */
typedef Label_5<Type,Ports,Position,ThreadSet,RealLatency> SpecificationLabel;

class Specification : public CommunicationStructure< SpecificationLabel > {
public:
	Specification(std::string pName);
	~Specification();
	Specification operator+(Specification pC);
};

}
}
}

#endif /*WIREDBASSPECIFICAION_H_*/
