torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
torc::placer::PlacementSiteTypeMapping Class Reference

Placement mapping for legal instance types to site types. More...

#include <PlacementSiteTypeMapping.hpp>

+ Inheritance diagram for torc::placer::PlacementSiteTypeMapping:
+ Collaboration diagram for torc::placer::PlacementSiteTypeMapping:

Data Structures

class  MappingSiteType
 

Public Types

typedef std::vector
< MappingSiteType
TypeVector
 

Public Member Functions

 PlacementSiteTypeMapping (DDB &inDB)
 
 ~PlacementSiteTypeMapping ()
 
uint32 getNumTypes ()
 
std::vector< MappingSiteType > & getTypeVector ()
 
std::vector< uint32 > & getLegalSitesForInstance (uint32 inInstanceTypeIndex)
 
std::vector< uint32 > & getLegalInstancesForSite (uint32 inSiteTypeIndex)
 
MappingSiteTypegetType (uint32 inIndex)
 
MappingSiteTypegetType (std::string &inName)
 
const std::string & getName (uint32 inIndex)
 
uint32 getTypeIndex (const std::string &inType)
 Get the type index for a given type name, creates a new entry if not found. More...
 

Protected Types

typedef architecture::DDB DDB
 
typedef architecture::Sites Sites
 
typedef boost::uint32_t uint32
 
typedef std::vector< uint32InstanceTypeToCandidateTypeMap
 
typedef architecture::Site Site
 
typedef std::vector< const Site * > SitePtrVector
 
typedef std::vector
< SitePtrVector
SitePtrVectorVector
 
typedef std::vector
< SitePtrVectorVector
SitePtrVectorVectorVector
 
typedef std::set< Site * > SitePtrSet
 
typedef std::vector< SitePtrSetSitePtrSetVector
 
typedef std::vector
< SitePtrSetVector
SitePtrSetVectorVector
 

Protected Member Functions

void prepareStructures ()
 
void addMapData (std::string itype, std::string stype)
 

Protected Attributes

DDBmDB
 
const SitesmSites
 
const architecture::Array
< const
architecture::PrimitiveDef > & 
mSiteTypes
 
TypeVector mTypeVector
 
std::map< std::string, uint32mTypeLookup
 

Detailed Description

Placement mapping for legal instance types to site types.

Definition at line 33 of file PlacementSiteTypeMapping.hpp.

Member Typedef Documentation

Definition at line 48 of file PlacementSiteTypeMapping.hpp.

Definition at line 49 of file PlacementSiteTypeMapping.hpp.

typedef std::vector<const Site*> torc::placer::PlacementSiteTypeMapping::SitePtrVector
protected

Definition at line 44 of file PlacementSiteTypeMapping.hpp.

typedef boost::uint32_t torc::placer::PlacementSiteTypeMapping::uint32
protected

Definition at line 38 of file PlacementSiteTypeMapping.hpp.

Constructor & Destructor Documentation

torc::placer::PlacementSiteTypeMapping::PlacementSiteTypeMapping ( DDB inDB)
inline

Definition at line 77 of file PlacementSiteTypeMapping.hpp.

78  : mDB(inDB), mSites(inDB.getSites()), mSiteTypes(mSites.getSiteTypes()) {
79 
81  // this is the default mapping so it is simple matching of instance to site types.
82  // it is assumed that the type index on the instance side matches the database.
83  for (uint32 i = 0; i < mSites.getSiteTypeCount(); i++) {
85  }
86 
87  //populateGroups();
88  }
const std::string & getName(uint32 inIndex)
const Array< const PrimitiveDef > & getSiteTypes(void) const
Returns the site types for this family.
Definition: Sites.hpp:125
void addMapData(std::string itype, std::string stype)
SiteTypeCount getSiteTypeCount(void) const
Returns the site type count for this family.
Definition: Sites.hpp:123
const architecture::Array< const architecture::PrimitiveDef > & mSiteTypes

+ Here is the call graph for this function:

torc::placer::PlacementSiteTypeMapping::~PlacementSiteTypeMapping ( )
inline

Definition at line 89 of file PlacementSiteTypeMapping.hpp.

89 {}

Member Function Documentation

void torc::placer::PlacementSiteTypeMapping::addMapData ( std::string  itype,
std::string  stype 
)
inlineprotected

Definition at line 102 of file PlacementSiteTypeMapping.hpp.

102  {
103  uint32 ii = mTypeLookup[itype];
104  uint32 si = mTypeLookup[stype];
105 
106  mTypeVector[ii].getSiteTypes().push_back(si);
107  mTypeVector[si].getInstanceTypes().push_back(ii);
108 
109  }
std::map< std::string, uint32 > mTypeLookup

+ Here is the caller graph for this function:

std::vector<uint32>& torc::placer::PlacementSiteTypeMapping::getLegalInstancesForSite ( uint32  inSiteTypeIndex)
inline

Definition at line 120 of file PlacementSiteTypeMapping.hpp.

120  {
121  return mTypeVector[inSiteTypeIndex].getInstanceTypes();
122  }

+ Here is the caller graph for this function:

std::vector<uint32>& torc::placer::PlacementSiteTypeMapping::getLegalSitesForInstance ( uint32  inInstanceTypeIndex)
inline

Definition at line 117 of file PlacementSiteTypeMapping.hpp.

117  {
118  return mTypeVector[inInstanceTypeIndex].getSiteTypes();
119  }

+ Here is the caller graph for this function:

const std::string& torc::placer::PlacementSiteTypeMapping::getName ( uint32  inIndex)
inline

Definition at line 128 of file PlacementSiteTypeMapping.hpp.

128 { return mTypeVector[inIndex].getName(); }

+ Here is the caller graph for this function:

uint32 torc::placer::PlacementSiteTypeMapping::getNumTypes ( )
inline

Definition at line 111 of file PlacementSiteTypeMapping.hpp.

111 { return mTypeLookup.size(); }
std::map< std::string, uint32 > mTypeLookup
MappingSiteType& torc::placer::PlacementSiteTypeMapping::getType ( uint32  inIndex)
inline

Definition at line 123 of file PlacementSiteTypeMapping.hpp.

123 { return mTypeVector[inIndex]; }
MappingSiteType& torc::placer::PlacementSiteTypeMapping::getType ( std::string &  inName)
inline

Definition at line 125 of file PlacementSiteTypeMapping.hpp.

125  {
126  return mTypeVector[mTypeLookup[inName]];
127  }
std::map< std::string, uint32 > mTypeLookup
uint32 torc::placer::PlacementSiteTypeMapping::getTypeIndex ( const std::string &  inType)
inline

Get the type index for a given type name, creates a new entry if not found.

Definition at line 131 of file PlacementSiteTypeMapping.hpp.

131 { return mTypeLookup[inType]; }
std::map< std::string, uint32 > mTypeLookup

+ Here is the caller graph for this function:

std::vector<MappingSiteType>& torc::placer::PlacementSiteTypeMapping::getTypeVector ( )
inline

Definition at line 113 of file PlacementSiteTypeMapping.hpp.

113  {
114  return mTypeVector;
115  }
void torc::placer::PlacementSiteTypeMapping::prepareStructures ( )
inlineprotected

Definition at line 92 of file PlacementSiteTypeMapping.hpp.

92  {
93  mTypeVector.clear();
94  mTypeLookup.clear();
95  // set up a map of site type indices
96  for (uint32 i = 0; i < mSites.getSiteTypeCount(); i++) {
97  mTypeVector.push_back(MappingSiteType(mSiteTypes[i].getName()));
98  mTypeLookup.insert(std::pair<std::string, uint32>(mSiteTypes[i].getName(), i));
99  }
100  }
const std::string & getName(uint32 inIndex)
std::map< std::string, uint32 > mTypeLookup
SiteTypeCount getSiteTypeCount(void) const
Returns the site type count for this family.
Definition: Sites.hpp:123
const architecture::Array< const architecture::PrimitiveDef > & mSiteTypes

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Field Documentation

DDB& torc::placer::PlacementSiteTypeMapping::mDB
protected

Definition at line 69 of file PlacementSiteTypeMapping.hpp.

const Sites& torc::placer::PlacementSiteTypeMapping::mSites
protected

Definition at line 70 of file PlacementSiteTypeMapping.hpp.

const architecture::Array<const architecture::PrimitiveDef>& torc::placer::PlacementSiteTypeMapping::mSiteTypes
protected

Definition at line 71 of file PlacementSiteTypeMapping.hpp.

std::map<std::string, uint32> torc::placer::PlacementSiteTypeMapping::mTypeLookup
protected

Definition at line 74 of file PlacementSiteTypeMapping.hpp.

TypeVector torc::placer::PlacementSiteTypeMapping::mTypeVector
protected

Definition at line 73 of file PlacementSiteTypeMapping.hpp.


The documentation for this class was generated from the following file: