00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef TORC_PLACER_DEVICESITETYPE_HPP
00020 #define TORC_PLACER_DEVICESITETYPE_HPP
00021
00022 #include "DeviceSite.hpp"
00023 #include "DeviceSiteTypePin.hpp"
00024 #include <vector>
00025
00026 namespace torc {
00027 namespace placer {
00028 class DeviceSiteType
00029 {
00030 typedef std::vector<DeviceSiteTypePin> DeviceSiteTypePinVector;
00031
00032 protected:
00033 std::string mName;
00034 DeviceSiteTypePinVector mPins;
00035 int mSiteTypeIndex;
00036
00037 public:
00038 DeviceSiteType() {
00039 mName = "UNINITIALIZED!";
00040 mSiteTypeIndex = -1;
00041 }
00042 DeviceSiteType(std::string inName, int inSiteTypeIndex) : mName(inName),
00043 mSiteTypeIndex(inSiteTypeIndex) {}
00044 ~DeviceSiteType() {}
00045 const std::string& getName() const {
00046 return mName;
00047 }
00048 void setName(std::string inName) {
00049 mName = inName;
00050 }
00051 int getSiteTypeIndex() {
00052 return mSiteTypeIndex;
00053 }
00054 void setSiteTypeIndex(int inSiteTypeIndex) {
00055 mSiteTypeIndex = inSiteTypeIndex;
00056 }
00057
00058 void addPin(std::string inName, int inRowOffset, int inColOffset) {
00059
00060 DeviceSiteTypePin pin(inName, inRowOffset, inColOffset);
00061 mPins.push_back(pin);
00062 }
00063 int getNumPins() {
00064 return mPins.size();
00065 }
00066 DeviceSiteTypePin& getPin(int i) {
00067 return mPins[i];
00068 }
00069 };
00070 }
00071 }
00072 #endif // TORC_PLACER_DEVICESITETYPE_HPP