4 #include "ConversionException.hxx"
16 Runtime* getRuntime() throw(Exception);
29 class ServiceInlineNode;
30 class ComponentInstance;
36 class InputDataStreamPort;
37 class OutputDataStreamPort;
43 friend Runtime* getRuntime() throw(Exception);
45 virtual void init() { }
46 virtual void fini() { }
48 virtual Catalog* loadCatalog(const std::string& sourceKind,const std::string& path);
49 virtual InlineFuncNode* createFuncNode(const std::string& kind,const std::string& name);
50 virtual InlineNode* createScriptNode(const std::string& kind,const std::string& name);
52 virtual ServiceNode* createRefNode(const std::string& kind,const std::string& name);
53 virtual ServiceNode* createCompoNode(const std::string& kind,const std::string& name);
54 virtual ServiceInlineNode *createSInlineNode(const std::string& kind, const std::string& name);
55 virtual DataNode* createInDataNode(const std::string& kind,const std::string& name);
56 virtual DataNode* createOutDataNode(const std::string& kind,const std::string& name);
58 virtual ComponentInstance* createComponentInstance(const std::string& name,
59 const std::string& kind="");
60 virtual Container *createContainer(const std::string& kind="");
61 virtual Proc* createProc(const std::string& name);
62 virtual Bloc* createBloc(const std::string& name);
63 virtual WhileLoop* createWhileLoop(const std::string& name);
64 virtual ForLoop* createForLoop(const std::string& name);
65 virtual ForEachLoop* createForEachLoop(const std::string& name,TypeCode * type);
66 virtual Switch* createSwitch(const std::string& name);
69 virtual InputPort* createInputPort(const std::string& name,
70 const std::string& impl,
74 virtual OutputPort* createOutputPort(const std::string& name,
75 const std::string& impl,
79 virtual InputDataStreamPort* createInputDataStreamPort(const std::string& name,
82 virtual OutputDataStreamPort* createOutputDataStreamPort(const std::string& name,
86 virtual InputPort* adapt(InputPort* source, const std::string& impl, TypeCode * type) throw (ConversionException) = 0;
88 virtual void removeRuntime();
91 static const char RUNTIME_ENGINE_INTERACTION_IMPL_NAME[];
92 static YACS::ENGINE::TypeCode *_tc_double;
93 static YACS::ENGINE::TypeCode *_tc_int;
94 static YACS::ENGINE::TypeCode *_tc_bool;
95 static YACS::ENGINE::TypeCode *_tc_string;
96 static YACS::ENGINE::TypeCode *_tc_file;
97 virtual void setCatalogLoaderFactory(const std::string& name, CatalogLoader* factory);
98 std::map<std::string,CatalogLoader*> _catalogLoaderFactoryMap;
99 Catalog* getBuiltinCatalog();
100 virtual void addCatalog(Catalog* catalog);
101 virtual TypeCode* getTypeCode(const std::string& name);
104 static Runtime* _singleton;
106 std::set<std::string> _setOfImplementation;
107 Catalog* _builtinCatalog;
108 std::vector<Catalog*> _catalogs;