00001
00002
00003
00004
00005
00006
00007
00008 #ifndef INSTANTIABLESUBNETWORK_H_
00009 #define INSTANTIABLESUBNETWORK_H_
00010
00011 #include <map>
00012 #include <string>
00013 #include "InstantiableLink.h"
00014 #include "InstantiableNode.h"
00015 #include "rules/wiredbas/link/WiringRule.h"
00016 #include "rules/wiredbas/common/NetworkRule.h"
00017
00018 namespace cosi {
00019
00020 namespace library {
00021
00022 namespace wiredbas {
00023
00024 class InstantiableSubNetwork {
00025 protected:
00026 std::map<std::string , cosi::library::wiredbas::InstantiableNode*> mNodes;
00027 std::map<std::string, cosi::library::wiredbas::InstantiableLink*> mLinks;
00028 cosi::commstruct::wiredbas::Implementation* mI ;
00029 public:
00030 InstantiableSubNetwork(std::map<std::string , cosi::library::wiredbas::InstantiableNode*> N,
00031 std::map<std::string, cosi::library::wiredbas::InstantiableLink*> L);
00032 virtual ~InstantiableSubNetwork();
00033 virtual cosi::commstruct::wiredbas::Implementation* StartNew();
00034 virtual void AddNode(string Name , Vertex V, Position pP, ThreadSet pThreads,
00035 TransferTable pT) = 0 ;
00036 virtual void AddLink(string Name ,Vertex U, Vertex V, WiringPath pPath) = 0 ;
00037
00038 };
00039
00040 }
00041
00042 }
00043
00044 }
00045
00046 #endif