00001
00002
00003
00004
00005
00006
00007
00008 #ifndef ARCNETNODE_H_
00009 #define ARCNETNODE_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/ArcnetNodeCost.h"
00019 #include <string>
00020
00021 namespace cosi {
00022
00023 namespace library {
00024
00025 namespace wiredbas {
00026
00027 class ArcnetNode : public cosi::library::wiredbas::Node {
00028
00029 protected:
00030 cosi::models::wiredbas::ArcnetNodeCost* mCostModel;
00031
00032 public:
00033 ArcnetNode();
00034 virtual ~ArcnetNode();
00035
00036 void SetCostModel(cosi::models::wiredbas::ArcnetNodeCost* pCostModel);
00037
00038 virtual RealDelay GetDelay(Vertex NodeId,
00039 cosi::commstruct::wiredbas::Implementation* pI, Vertex Src,
00040 Vertex Dest) = 0 ;
00041
00042 virtual double GetDelayValue(Vertex NodeId,
00043 cosi::commstruct::wiredbas::Implementation* pI, Vertex Src,
00044 Vertex Dest)= 0;
00045
00046 virtual cosi::commstruct::wiredbas::PlatformInstance* GetPlatformInstance(
00047 int V, Position pP) = 0;
00048
00049 virtual cosi::commstruct::wiredbas::Implementation
00050 * GetImplementationInstance(int V, Position pP, ThreadSet pThreads,
00051 TransferTable pT) = 0;
00052
00053 virtual double GetCost() = 0 ;
00054
00055 };
00056
00057 }
00058 }
00059 }
00060
00061 #endif