#ifndef STARTOPOLOGYGENERATION_H_
#define STARTOPOLOGYGENERATION_H_

#include "include/CosiGlobal.h"
#include "include/onchipcommunication/CosiGlobal.h"
#include "networks/onchipcommunication/Specification.h"
#include "networks/onchipcommunication/PlatformInstance.h"
#include "networks/onchipcommunication/Implementation.h"
#include "platforms/onchipcommunication/Platform.h"
#include "io/onchipcommunication/ParquetCodeGen.h"
#include "io/onchipcommunication/PlacementParser.h"

namespace cosi
{

namespace algorithms
{

namespace onchipcommunication
{

using namespace cosi::commstruct::onchipcommunication ;
using namespace cosi::platforms::onchipcommunication ;
using namespace cosi::library::onchipcommunication ;
using namespace cosi::io::onchipcommunication ;
using namespace std ;

class StarTopologyGeneration
{
public:
	StarTopologyGeneration(Specification* Spec , Platform* Plt );
	virtual ~StarTopologyGeneration();
	bool Run() ;
	PlacementParser* GetPlacement();
	Implementation* GetImplementation();
private:
	Specification* mSpec ;
	Platform* mPlt ;
	Implementation* mI ;
	PlacementParser* mPlacement ;
};

}

}

}

#endif /*STARTOPOLOGYGENERATION_H_*/
