4 #include "ConversionException.hxx"
16 Runtime* getRuntime() throw(Exception); // singleton creation
28 class ServiceInlineNode;
29 class ComponentInstance;
35 class InputDataStreamPort;
36 class OutputDataStreamPort;
40 friend Runtime* getRuntime() throw(Exception);
42 virtual void init() { }
43 virtual void fini() { }
45 virtual InlineFuncNode* createFuncNode(const std::string& kind,const std::string& name);
46 virtual InlineNode* createScriptNode(const std::string& kind,const std::string& name);
48 virtual ServiceNode* createRefNode(const std::string& kind,const std::string& name);
49 virtual ServiceNode* createCompoNode(const std::string& kind,const std::string& name);
50 virtual ServiceInlineNode *createSInlineNode(const std::string& kind, const std::string& name);
52 virtual ComponentInstance* createComponentInstance(const std::string& name,
53 const std::string& kind="");
54 virtual Container *createContainer(const std::string& kind="");
55 virtual Proc* createProc(const std::string& name);
56 virtual Bloc* createBloc(const std::string& name);
57 virtual WhileLoop* createWhileLoop(const std::string& name);
58 virtual ForLoop* createForLoop(const std::string& name);
59 virtual ForEachLoop* createForEachLoop(const std::string& name,TypeCode * type);
60 virtual Switch* createSwitch(const std::string& name);
63 virtual InputPort* createInputPort(const std::string& name,
64 const std::string& impl,
68 virtual OutputPort* createOutputPort(const std::string& name,
69 const std::string& impl,
73 virtual InputDataStreamPort* createInputDataStreamPort(const std::string& name,
76 virtual OutputDataStreamPort* createOutputDataStreamPort(const std::string& name,
80 virtual InputPort* adapt(InputPort* source, const std::string& impl, TypeCode * type) throw (ConversionException) = 0;
84 static const char RUNTIME_ENGINE_INTERACTION_IMPL_NAME[];
85 static YACS::ENGINE::TypeCode *_tc_double;
86 static YACS::ENGINE::TypeCode *_tc_int;
87 static YACS::ENGINE::TypeCode *_tc_bool;
88 static YACS::ENGINE::TypeCode *_tc_string;
89 static YACS::ENGINE::TypeCode *_tc_file;
91 static Runtime* _singleton;
93 std::set<std::string> _setOfImplementation;