|
libraries/wiredbas/node/ArcnetBus.hGo to the documentation of this file.00001 //============================================================================ 00002 // Author : Alessandro Pinto <apinto@eecs.berkeley.edu> 00003 // University of California, Berkeley 00004 // 545 Cory Hall, Berkeley, CA 94720 00005 // Copyright : See COPYING file that comes with this distribution 00006 //============================================================================ 00007 00008 #ifndef ARCNETBUS_H_ 00009 #define ARCNETBUS_H_ 00010 00011 #include <string> 00012 #include "libraries/wiredbas/common/Bus.h" 00013 #include "rules/wiredbas/link/WiringRule.h" 00014 #include "rules/wiredbas/node/ArcnetBusRule.h" 00015 #include "models/wiredbas/common/WireCost.h" 00016 #include "models/wiredbas/common/WireDelayModel.h" 00017 #include "models/wiredbas/node/ArcnetBusCost.h" 00018 #include "models/wiredbas/node/ArcnetBusDelay.h" 00019 00020 namespace cosi { 00021 00022 namespace library { 00023 00024 namespace wiredbas { 00025 00026 class ArcnetBus : public Bus { 00027 //Wiring model 00028 cosi::rules::wiredbas::WiringRule* mWiringRule; 00029 //Bus rules 00030 cosi::rules::wiredbas::ArcnetBusRule* mArcnetBusRule; 00031 //Cost model 00032 cosi::models::wiredbas::WireCost* mWireCost; 00033 cosi::models::wiredbas::ArcnetBusCost* mBusCost; 00034 //Delay model 00035 cosi::models::wiredbas::WireDelay* mWireDelay; 00036 cosi::models::wiredbas::ArcnetBusDelay* mBusDelay; 00037 00038 double mBusSpeed; 00039 public: 00040 00041 ArcnetBus(double pBusSpeed, cosi::rules::wiredbas::WiringRule* pWiringRule, 00042 cosi::models::wiredbas::WireCost* pWireCost, 00043 cosi::models::wiredbas::WireDelay* pWireDelay); 00044 00045 virtual ~ArcnetBus(); 00046 00047 void SetWiringRule(cosi::rules::wiredbas::WiringRule* pWiringRule); 00048 void SetWireCostModel(cosi::models::wiredbas::WireCost* pWireCost); 00049 void SetWireDelayModel(cosi::models::wiredbas::WireDelay* pWireDealy); 00050 00051 double BusAccessLatencyValue( 00052 cosi::commstruct::wiredbas::Implementation* pBus); 00053 double BusAccessLatencyValue(int pNodeId, 00054 cosi::commstruct::wiredbas::Implementation* pBus); 00055 bool Satisfies(cosi::commstruct::wiredbas::Implementation* pBus); 00056 00057 double 00058 GetBusBandwidthValue( 00059 cosi::commstruct::wiredbas::Implementation* pBus); 00060 00061 double GetCost(cosi::commstruct::wiredbas::Implementation* pBus); 00062 00063 static std::string ComponentName; 00064 static std::string ComponentType; 00065 }; 00066 00067 } 00068 } 00069 } 00070 #endif /*ARCNET_H_*/ Generated on Sun Sep 7 18:37:42 2008 for COSI by 1.5.4 |