From: Robert L. <rle...@us...> - 2007-03-23 11:03:48
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv17271/src/ccmtools/CppGenerator Modified Files: CppAssemblyGenerator.java Log Message: C++: the local home adapter has no longer a dependency to the home's implementation Index: CppAssemblyGenerator.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator/CppAssemblyGenerator.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** CppAssemblyGenerator.java 22 Mar 2007 13:28:47 -0000 1.12 --- CppAssemblyGenerator.java 23 Mar 2007 11:03:44 -0000 1.13 *************** *** 19,23 **** import java.util.logging.Logger; import ccmtools.CcmtoolsException; - import ccmtools.CodeGenerator.Template; import ccmtools.parser.assembly.metamodel.Assembly; import ccmtools.parser.assembly.metamodel.AssemblyElement; --- 19,22 ---- *************** *** 65,69 **** */ protected Model assemblies; ! public void startGraph() { --- 64,68 ---- */ protected Model assemblies; ! public void startGraph() { *************** *** 249,252 **** --- 248,255 ---- { MComponentDef comp_def = map.get(key); + final String home_type = "::Components::CCMHome::SmartPtr"; + String home_var = createLocalVar(local_var_map, home_type, code_homes); + final String keyless_type = "::Components::KeylessCCMHome*"; + String keyless_var = createLocalVar(local_var_map, keyless_type, code_homes); String comp_alias = currentAssembly.getComponents().get(key).getAlias(); if (comp_alias != null) *************** *** 263,281 **** have_finder = true; } - final String home_type = "::Components::CCMHome::SmartPtr"; - String home_var = createLocalVar(local_var_map, home_type, code_homes); code_creation.append(TAB).append(home_var); code_creation.append(" = ").append(finder_var); code_creation.append("->find_home_by_name(\""); code_creation.append(comp_alias).append("\");\n"); - final String keyless_type = "::Components::KeylessCCMHome*"; - String keyless_var = createLocalVar(local_var_map, keyless_type, code_homes); - code_creation.append(TAB).append(keyless_var); - code_creation.append(" = dynamic_cast< ").append(keyless_type); - code_creation.append(">(").append(home_var).append(".ptr());\n"); - code_creation.append(TAB).append("assert("); - code_creation.append(keyless_var).append(");\n"); - code_creation.append(TAB).append(key).append("_ = "); - code_creation.append(keyless_var).append("->create_component();\n"); } else --- 266,273 ---- *************** *** 283,294 **** // using first home MHomeDef home = getHome(comp_def); ! String home_type = getLocalCxxName(home, "::"); ! String home_var = createLocalVar(local_var_map, home_type, code_homes); ! code_creation.append(TAB); ! code_creation.append(key); ! code_creation.append("_ = "); ! code_creation.append(home_var); ! code_creation.append(".create();\n"); } code_creation.append(TAB).append("assert("); code_creation.append(key).append("_);\n"); --- 275,290 ---- // using first home MHomeDef home = getHome(comp_def); ! String absoluteLocalHomeName = getLocalCxxIncludeName(home, Text.MANGLING_SEPARATOR); ! String func = "::create_" + absoluteLocalHomeName + "Adapter()"; ! code_creation.append(TAB).append(home_var); ! code_creation.append(" = ").append(func).append(";\n"); } + code_creation.append(TAB).append(keyless_var); + code_creation.append(" = dynamic_cast< ").append(keyless_type); + code_creation.append(">(").append(home_var).append(".ptr());\n"); + code_creation.append(TAB).append("assert("); + code_creation.append(keyless_var).append(");\n"); + code_creation.append(TAB).append(key).append("_ = "); + code_creation.append(keyless_var).append("->create_component();\n"); code_creation.append(TAB).append("assert("); code_creation.append(key).append("_);\n"); *************** *** 371,378 **** MComponentDef comp_def = map.get(key); MHomeDef home = getHome(comp_def); ! String inc_name = getLocalCxxIncludeName(home); if (!include_set.contains(inc_name)) { ! code.append("#include <" + inc_name + "_gen.h>\n"); include_set.add(inc_name); } --- 367,375 ---- MComponentDef comp_def = map.get(key); MHomeDef home = getHome(comp_def); ! String absoluteLocalHomeName = getLocalCxxIncludeName(home, Text.MANGLING_SEPARATOR); ! String inc_name = absoluteLocalHomeName + "_entry.h"; if (!include_set.contains(inc_name)) { ! code.append("#include <" + inc_name + ">\n"); include_set.add(inc_name); } |