53 class ServiceInlineNode;
54 class ComponentInstance;
62 class InputDataStreamPort;
63 class OutputDataStreamPort;
74 virtual Catalog* loadCatalog(
const std::string& sourceKind,
const std::string& path);
75 virtual InlineFuncNode* createFuncNode(
const std::string& kind,
const std::string& name);
76 virtual InlineNode* createScriptNode(
const std::string& kind,
const std::string& name);
78 virtual ServiceNode* createRefNode(
const std::string& kind,
const std::string& name);
79 virtual ServiceNode* createCompoNode(
const std::string& kind,
const std::string& name);
80 virtual ServiceInlineNode *createSInlineNode(
const std::string& kind,
const std::string& name);
81 virtual DataNode* createInDataNode(
const std::string& kind,
const std::string& name);
82 virtual DataNode* createOutDataNode(
const std::string& kind,
const std::string& name);
84 virtual ComponentInstance* createComponentInstance(
const std::string& name,
85 const std::string& kind=
"");
86 virtual Container *createContainer(
const std::string& kind=
"");
87 virtual Proc* createProc(
const std::string& name);
88 virtual Bloc* createBloc(
const std::string& name);
89 virtual WhileLoop* createWhileLoop(
const std::string& name);
90 virtual ForLoop* createForLoop(
const std::string& name);
91 virtual ForEachLoop* createForEachLoop(
const std::string& name,TypeCode * type);
92 virtual OptimizerLoop* createOptimizerLoop(
const std::string& name,
const std::string& algLib,
93 const std::string& factoryName,
bool algInitOnFile,
94 const std::string& kind=
"", Proc * procForTypes = NULL);
95 virtual Switch* createSwitch(
const std::string& name);
97 virtual TypeCode * createInterfaceTc(
const std::string&
id,
const std::string& name,
98 std::list<TypeCodeObjref *> ltc);
99 virtual TypeCode * createSequenceTc(
const std::string&
id,
const std::string& name, TypeCode *content);
100 virtual TypeCodeStruct * createStructTc(
const std::string&
id,
const std::string& name);
102 virtual InputPort* createInputPort(
const std::string& name,
103 const std::string& impl,
105 TypeCode * type) = 0;
107 virtual OutputPort* createOutputPort(
const std::string& name,
108 const std::string& impl,
110 TypeCode * type) = 0;
112 virtual InputDataStreamPort* createInputDataStreamPort(
const std::string& name,
115 virtual OutputDataStreamPort* createOutputDataStreamPort(
const std::string& name,
119 virtual InputPort*
adapt(InputPort* source,
const std::string& impl, TypeCode * type,
122 virtual InputPort*
adapt(InPropertyPort* source,
123 const std::
string& impl,
125 bool init=false) throw (ConversionException) = 0;
127 virtual
void* convertNeutral(TypeCode * type, Any *data);
128 virtual std::
string convertNeutralAsString(TypeCode * type, Any *data);
130 virtual
void removeRuntime();
133 static const
char RUNTIME_ENGINE_INTERACTION_IMPL_NAME[];
134 static
YACS::ENGINE::TypeCode *_tc_double;
135 static
YACS::ENGINE::TypeCode *_tc_int;
136 static
YACS::ENGINE::TypeCode *_tc_bool;
137 static
YACS::ENGINE::TypeCode *_tc_string;
138 static
YACS::ENGINE::TypeCode *_tc_file;
139 static
YACS::ENGINE::TypeCode *_tc_stringpair;
140 static
YACS::ENGINE::TypeCode *_tc_propvec;
141 virtual
void setCatalogLoaderFactory(const std::
string& name, CatalogLoader* factory);
142 std::map<std::
string,CatalogLoader*> _catalogLoaderFactoryMap;
143 Catalog* getBuiltinCatalog();
144 virtual
void addCatalog(Catalog* catalog);
145 virtual TypeCode* getTypeCode(const std::
string& name);
148 static Runtime* _singleton;
150 std::set<std::
string> _setOfImplementation;
151 Catalog* _builtinCatalog;
152 std::vector<Catalog*> _catalogs;