00001
00002
00003
00004
00005
00006
00007
00008 #ifndef ETHERNETNODE_H_
00009 #define ETHERNETNODE_H_
00010
00011 #include "networks/wiredbas/WiredBasPlatformInstance.h"
00012 #include "networks/wiredbas/WiredBasImplementation.h"
00013 #include "quantities/Position.h"
00014 #include "quantities/Bandwidth.h"
00015 #include "quantities/Ports.h"
00016 #include "quantities/RealDelay.h"
00017 #include "libraries/wiredbas/common/Node.h"
00018 #include "models/wiredbas/node/EthernetNodeCost.h"
00019 #include <string>
00020
00021 namespace cosi {
00022
00023 namespace library {
00024
00025 namespace wiredbas {
00026
00027 class EthernetNode : public cosi::library::wiredbas::Node {
00028 protected:
00029 cosi::models::wiredbas::EthernetNodeCost* mCostModel;
00030 public:
00031 EthernetNode();
00032 virtual ~EthernetNode();
00033 void SetCostModel(cosi::models::wiredbas::EthernetNodeCost* pCostModel);
00034 virtual cosi::commstruct::wiredbas::PlatformInstance* GetPlatformInstance(
00035 int V, Position pP) = 0;
00036 virtual cosi::commstruct::wiredbas::Implementation
00037 * GetImplementationInstance(int V, Position pP, ThreadSet pThreads,
00038 TransferTable pT) = 0;
00039 virtual RealDelay GetDelay(Vertex NodeId,
00040 cosi::commstruct::wiredbas::Implementation* pI, Vertex Src,
00041 std::string Dest) = 0;
00042 virtual double GetDelayValue(Vertex NodeId,
00043 cosi::commstruct::wiredbas::Implementation* pI, Vertex Src,
00044 std::string Dest) = 0;
00045 virtual double GetCost() =0 ;
00046
00047 };
00048
00049 }
00050
00051 }
00052
00053 }
00054
00055 #endif