libraries/wiredbas/node/EthernetSubNetwork.h

Go 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 ETHERNETSUBNETWORK_H_
00009 #define ETHERNETSUBNETWORK_H_
00010 
00011 #include <string>
00012 #include "libraries/wiredbas/common/SubNetwork.h"
00013 #include "rules/wiredbas/link/WiringRule.h"
00014 #include "rules/wiredbas/node/EthernetNetworkRule.h"
00015 #include "models/wiredbas/common/WireCost.h"
00016 #include "models/wiredbas/common/LinkDelayModel.h"
00017 #include "models/wiredbas/node/EthernetNetworkCost.h"
00018 #include "models/wiredbas/node/EthernetNetworkDelay.h"
00019 #include "libraries/wiredbas/common/InstantiableLink.h"
00020 #include "libraries/wiredbas/common/InstantiableNode.h"
00021 
00022 namespace cosi {
00023 
00024 namespace library {
00025 
00026 namespace wiredbas {
00027 
00028 class EthernetSubNetwork : public SubNetwork {
00029         //Wiring model
00030         cosi::rules::wiredbas::WiringRule* mWiringRule;
00031         cosi::rules::wiredbas::EthernetNetworkRule* mEthernetRule;
00032         cosi::models::wiredbas::WireCost* mWireCost;
00033         cosi::models::wiredbas::EthernetNetworkCost* mNetCost;
00034         cosi::models::wiredbas::LinkDelayModel* mLinkDelay;
00035         cosi::models::wiredbas::EthernetNetworkDelay* mNetDelay;
00036 
00037 public:
00038         EthernetSubNetwork(cosi::rules::wiredbas::WiringRule* Wr,
00039         cosi::rules::wiredbas::EthernetNetworkRule* Er,
00040         cosi::models::wiredbas::WireCost* Wc,
00041         cosi::models::wiredbas::EthernetNetworkCost* Nc,
00042         cosi::models::wiredbas::LinkDelayModel* Ld,
00043         cosi::models::wiredbas::EthernetNetworkDelay* Nd,
00044         std::map<std::string, cosi::library::wiredbas::InstantiableNode*> N,
00045         std::map<std::string, cosi::library::wiredbas::InstantiableLink*> L);
00046         virtual ~EthernetSubNetwork();
00047     void AddNode(string Name, Vertex V, Position pP, ThreadSet pThreads,
00048                         TransferTable pT) ;
00049         void AddLink(string Name, Vertex U, Vertex V, WiringPath pPath) ;
00050         double LatencyValue(cosi::commstruct::wiredbas::Implementation* pNet,
00051                         Vertex Src, std::string Dest, Vertex SrcId, Vertex DestId);
00052         bool Satisfies(cosi::commstruct::wiredbas::Specification* pSpec ,cosi::commstruct::wiredbas::Implementation* pNet);
00053         double GetCost(cosi::commstruct::wiredbas::Implementation* pNet);
00054 };
00055 
00056 }
00057 
00058 }
00059 
00060 }
00061 
00062 #endif /*ETHERNETSUBNETWORK_H_*/

Generated on Sun Sep 7 18:37:42 2008 for COSI by  doxygen 1.5.4
Contact 
©2002-2018 U.C. Regents