You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(86) |
Dec
(163) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(114) |
Feb
(254) |
Mar
(166) |
Apr
(122) |
May
(131) |
Jun
(59) |
Jul
(201) |
Aug
(85) |
Sep
(80) |
Oct
(64) |
Nov
(103) |
Dec
(36) |
2005 |
Jan
(231) |
Feb
(204) |
Mar
(71) |
Apr
(54) |
May
(50) |
Jun
(120) |
Jul
(17) |
Aug
(124) |
Sep
(75) |
Oct
(154) |
Nov
(37) |
Dec
(143) |
2006 |
Jan
(346) |
Feb
(170) |
Mar
|
Apr
|
May
(273) |
Jun
(113) |
Jul
(427) |
Aug
(570) |
Sep
(212) |
Oct
(550) |
Nov
(348) |
Dec
(314) |
2007 |
Jan
(709) |
Feb
(223) |
Mar
(104) |
Apr
(24) |
May
(11) |
Jun
(3) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Robert L. <rle...@us...> - 2007-02-21 16:05:31
|
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly/test1 In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3424/test/CppAssembly/test1 Modified Files: Makefile test1.idl Log Message: C++ assemblies Index: test1.idl =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/CppAssembly/test1/test1.idl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test1.idl 20 Feb 2007 15:37:55 -0000 1.1 --- test1.idl 21 Feb 2007 16:05:20 -0000 1.2 *************** *** 6,9 **** --- 6,10 ---- interface I1 { string value(); + void run(in long x); }; Index: Makefile =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/CppAssembly/test1/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile 20 Feb 2007 15:37:55 -0000 1.1 --- Makefile 21 Feb 2007 16:05:20 -0000 1.2 *************** *** 1,3 **** --- 1,7 ---- DEST_DIR=gen + ITF_DIR=${DEST_DIR}/interfaces + C1_DIR=${DEST_DIR}/C1 + C2_DIR=${DEST_DIR}/C2 + C3_DIR=${DEST_DIR}/C3 IDL_INCLUDE=-I${DEST_DIR}/idl/interface -I${DEST_DIR}/idl/component *************** *** 10,20 **** local: idl ! ccmtools c++local ${IDL_INCLUDE} -a -o ${DEST_DIR}/interfaces `find ${DEST_DIR}/idl/interface -name '*.idl'` ! ccmtools c++local ${IDL_INCLUDE} -a -o ${DEST_DIR}/components `find ${DEST_DIR}/idl/component -name '*.idl'` ! ccmtools c++assembly ${IDL_INCLUDE} -o ${DEST_DIR}/components `find ${DEST_DIR}/idl/component -name '*.idl'` test1.assembly check: local ccmconfix -confix2 -o ${DEST_DIR} -pname "assembly-test1" -pversion "0.0.1" ! confix2.py --packageroot=`pwd`/${DEST_DIR} --bootstrap --configure --make clean: --- 14,26 ---- local: idl ! ccmtools c++local ${IDL_INCLUDE} -a -o ${ITF_DIR} `find ${DEST_DIR}/idl/interface -name '*.idl'` ! ccmtools c++local ${IDL_INCLUDE} -a -o ${C1_DIR} `find ${DEST_DIR}/idl/component -name '?1.idl'` ! ccmtools c++local ${IDL_INCLUDE} -a -o ${C2_DIR} `find ${DEST_DIR}/idl/component -name '?2.idl'` ! ccmtools c++local ${IDL_INCLUDE} -a -o ${C3_DIR} `find ${DEST_DIR}/idl/component -name '?3.idl'` ! ccmtools c++assembly ${IDL_INCLUDE} -o ${C3_DIR} `find ${DEST_DIR}/idl/component -name '*.idl'` test1.assembly check: local ccmconfix -confix2 -o ${DEST_DIR} -pname "assembly-test1" -pversion "0.0.1" ! cd ${DEST_DIR} && confix2.py --bootstrap --configure --make clean: |
Update of /cvsroot/ccmtools/ccmtools/src/templates/CppLocalTemplates In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3015/src/templates/CppLocalTemplates Modified Files: MComponentDef MProvidesDef MProvidesDefGetFacetPrototype MProvidesDefGetFacetDefinition Added Files: MProvidesDefGetFacetPointerInit Log Message: C++ assemblies Index: MProvidesDefGetFacetPrototype =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/templates/CppLocalTemplates/MProvidesDefGetFacetPrototype,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MProvidesDefGetFacetPrototype 8 Jul 2004 12:02:51 -0000 1.1 --- MProvidesDefGetFacetPrototype 21 Feb 2007 16:04:48 -0000 1.2 *************** *** 1,2 **** --- 1,5 ---- + private: + %(CCMProvidesType)s* %(Identifier)s_; + public: virtual %(CCMProvidesType)s* get_%(Identifier)s(); --- NEW FILE: MProvidesDefGetFacetPointerInit --- %(Identifier)s_ = NULL; Index: MProvidesDef =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/templates/CppLocalTemplates/MProvidesDef,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** MProvidesDef 5 Jan 2007 14:17:25 -0000 1.12 --- MProvidesDef 21 Feb 2007 16:04:48 -0000 1.13 *************** *** 17,22 **** --- 17,26 ---- : virtual public %(CCMProvidesType)s { + public: + friend class %(ComponentType)s_impl; + protected: %(ComponentType)s_impl* component; + %(AssemblyTargetVariable)s %(MAttributeDefVariable)s Index: MProvidesDefGetFacetDefinition =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/templates/CppLocalTemplates/MProvidesDefGetFacetDefinition,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** MProvidesDefGetFacetDefinition 5 Jan 2007 14:17:25 -0000 1.7 --- MProvidesDefGetFacetDefinition 21 Feb 2007 16:04:48 -0000 1.8 *************** *** 8,12 **** %(ComponentType)s_%(Identifier)s_impl* facet = new %(ComponentType)s_%(Identifier)s_impl(this); ! return dynamic_cast< %(CCMProvidesType)s*>(facet); } --- 8,13 ---- %(ComponentType)s_%(Identifier)s_impl* facet = new %(ComponentType)s_%(Identifier)s_impl(this); ! %(Identifier)s_ = dynamic_cast< %(CCMProvidesType)s* >(facet); ! return %(Identifier)s_; } Index: MComponentDef =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/templates/CppLocalTemplates/MComponentDef,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** MComponentDef 20 Feb 2007 15:36:41 -0000 1.24 --- MComponentDef 21 Feb 2007 16:04:48 -0000 1.25 *************** *** 477,480 **** --- 477,481 ---- #include "%(Identifier)s_impl.h" %(MProvidesDefImplInclude)s + %(AssemblyInnerHomeInclude)s %(OpenNamespace)s *************** *** 488,491 **** --- 489,493 ---- %(Identifier)s_impl::%(Identifier)s_impl() { + %(MProvidesDefGetFacetPointerInit)s %(AssemblyInnerComponentVariableCreation)s } *************** *** 493,497 **** %(Identifier)s_impl::~%(Identifier)s_impl() { - %(AssemblyInnerComponentVariableDestruction)s } --- 495,498 ---- *************** *** 510,514 **** throw(Components::CCMException) { ! // OPTIONAL : IMPLEMENT ME HERE ! } --- 511,519 ---- throw(Components::CCMException) { ! try { ! %(AssemblyCcmActivate)s ! } catch(...) { ! throw Components::CCMException(Components::CREATE_ERROR); ! } } *************** *** 517,521 **** throw(Components::CCMException) { ! // OPTIONAL : IMPLEMENT ME HERE ! } --- 522,526 ---- throw(Components::CCMException) { ! // Who calls this method? } *************** *** 524,528 **** throw(Components::CCMException) { ! // OPTIONAL : IMPLEMENT ME HERE ! } --- 529,537 ---- throw(Components::CCMException) { ! try { ! %(AssemblyCcmRemove)s ! } catch(...) { ! throw Components::CCMException(Components::REMOVE_ERROR); ! } } |
From: Robert L. <rle...@us...> - 2007-02-21 08:49:38
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3332/src/ccmtools/parser/assembly/metamodel Modified Files: Model.java Log Message: read all IDL-files before code generation, because the assambly generator needs all informations Index: Model.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/Model.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Model.java 15 Feb 2007 16:46:41 -0000 1.7 --- Model.java 21 Feb 2007 08:49:33 -0000 1.8 *************** *** 133,136 **** --- 133,142 ---- } + public void updateCcmModels( List<MContainer> models ) + { + for (MContainer ccmModel : models) + updateCcmModel(ccmModel); + } + /** * searches for an assembly description |
From: Robert L. <rle...@us...> - 2007-02-21 08:49:38
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/idl/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3332/src/ccmtools/parser/idl/metamodel Modified Files: CcmModelHelper.java Log Message: read all IDL-files before code generation, because the assambly generator needs all informations Index: CcmModelHelper.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/idl/metamodel/CcmModelHelper.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CcmModelHelper.java 19 Jan 2007 12:07:28 -0000 1.1 --- CcmModelHelper.java 21 Feb 2007 08:49:33 -0000 1.2 *************** *** 114,118 **** return ccmModel; } ! /* --- 114,129 ---- return ccmModel; } ! ! public static List<MContainer> loadCcmModels( UserInterfaceDriver uiDriver, ! List<String> fileNames, String includePath ) throws CcmtoolsException ! { ! ArrayList<MContainer> result = new ArrayList<MContainer>(); ! for (String fileName : fileNames) ! { ! MContainer model = loadCcmModel(uiDriver, fileName, includePath); ! result.add(model); ! } ! return result; ! } /* |
From: Robert L. <rle...@us...> - 2007-02-21 08:49:38
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3332/src/ccmtools/generator/java Modified Files: Main.java Log Message: read all IDL-files before code generation, because the assambly generator needs all informations Index: Main.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/Main.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Main.java 15 Feb 2007 16:46:41 -0000 1.11 --- Main.java 21 Feb 2007 08:49:32 -0000 1.12 *************** *** 3,6 **** --- 3,7 ---- import java.io.FileNotFoundException; import java.util.Iterator; + import java.util.List; import java.util.logging.Logger; import org.apache.commons.cli.CommandLine; *************** *** 57,85 **** { parameters.validate(); ! setCcmtoolsProperties(); ! JavaComponentGenerator generator = new JavaComponentGenerator(parameters, uiDriver); ! ! Model assemblies = ccmtools.parser.assembly.Main.parse(parameters.getAssemblyFiles()); ! ! for (Iterator i = parameters.getIdlFiles().iterator(); i.hasNext();) ! { ! String idlFile = (String) i.next(); ! MContainer ccmModel = ParserManager.loadCcmModel(uiDriver, idlFile, parameters.getIncludePaths()); ! assemblies.updateCcmModel(ccmModel); ! ! // Transform CCM Model to Java Implementation Model ! GraphTraverser traverser = new CcmGraphTraverser(); ! CcmToJavaModelMapper nodeHandler = new CcmToJavaModelMapper(); ! traverser.addHandler(nodeHandler); ! traverser.traverseGraph(ccmModel); ! // Query the Java Implementation Model and generate all source ! // file objects for the Java Client Library ! ModelRepository javaModel = nodeHandler.getJavaModel(); ! // Run the Java component generator which can handle all of ! // the different generator flags (-iface, -local, -app, -clientlib, etc.) ! generator.generate(javaModel, assemblies); ! } } } --- 58,84 ---- { parameters.validate(); ! setCcmtoolsProperties(); ! JavaComponentGenerator generator = new JavaComponentGenerator(parameters, uiDriver); ! Model assemblies = ccmtools.parser.assembly.Main.parse(parameters ! .getAssemblyFiles()); ! List<MContainer> models = ParserManager.loadCcmModels(uiDriver, parameters ! .getIdlFiles(), parameters.getIncludePaths()); ! assemblies.updateCcmModels(models); ! for (MContainer ccmModel : models) ! { ! // Transform CCM Model to Java Implementation Model ! GraphTraverser traverser = new CcmGraphTraverser(); ! CcmToJavaModelMapper nodeHandler = new CcmToJavaModelMapper(); ! traverser.addHandler(nodeHandler); ! traverser.traverseGraph(ccmModel); ! // Query the Java Implementation Model and generate all source ! // file objects for the Java Client Library ! ModelRepository javaModel = nodeHandler.getJavaModel(); ! // Run the Java component generator which can handle all of ! // the different generator flags (-iface, -local, -app, -clientlib, etc.) ! generator.generate(javaModel, assemblies); ! } } } |
From: Robert L. <rle...@us...> - 2007-02-21 08:49:38
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/ui In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3332/src/ccmtools/ui Modified Files: Main.java Log Message: read all IDL-files before code generation, because the assambly generator needs all informations Index: Main.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/ui/Main.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Main.java 20 Feb 2007 13:38:50 -0000 1.7 --- Main.java 21 Feb 2007 08:49:33 -0000 1.8 *************** *** 170,180 **** traverser.addHandler(handler); } ! for(Iterator f = idl_filenames.iterator(); f.hasNext();) { - String fileName = (String)f.next(); - MContainer ccmModel = CcmModelHelper.loadCcmModel(uiDriver, fileName, includePath); - if(assemblies!=null) - assemblies.updateCcmModel(ccmModel); uiDriver.printMessage("traverse CCM model"); traverser.traverseGraph(ccmModel); --- 170,182 ---- traverser.addHandler(handler); } + + List<MContainer> models = CcmModelHelper.loadCcmModels(uiDriver, idl_filenames, + includePath); + + if (assemblies != null) + assemblies.updateCcmModels(models); ! for (MContainer ccmModel : models) { uiDriver.printMessage("traverse CCM model"); traverser.traverseGraph(ccmModel); |
From: Robert L. <rle...@us...> - 2007-02-21 08:49:38
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/idl In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3332/src/ccmtools/parser/idl Modified Files: ParserManager.java Log Message: read all IDL-files before code generation, because the assambly generator needs all informations Index: ParserManager.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/idl/ParserManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ParserManager.java 22 Jan 2007 13:05:13 -0000 1.3 --- ParserManager.java 21 Feb 2007 08:49:32 -0000 1.4 *************** *** 4,9 **** import java.io.FileReader; import java.io.StringReader; import java.util.List; - import ccmtools.CcmtoolsException; import ccmtools.parser.cpp.CppManager; --- 4,9 ---- import java.io.FileReader; import java.io.StringReader; + import java.util.ArrayList; import java.util.List; import ccmtools.CcmtoolsException; import ccmtools.parser.cpp.CppManager; *************** *** 48,52 **** } } ! public static MContainer parseIdlFile(UserInterfaceDriver uiDriver, String idlFileName) --- 48,63 ---- } } ! ! public static List<MContainer> loadCcmModels( UserInterfaceDriver uiDriver, ! List<String> idlFileNames, List<String> includePaths ) throws CcmtoolsException ! { ! ArrayList<MContainer> result = new ArrayList<MContainer>(); ! for (String idlFileName : idlFileNames) ! { ! MContainer model = loadCcmModel(uiDriver, idlFileName, includePaths); ! result.add(model); ! } ! return result; ! } public static MContainer parseIdlFile(UserInterfaceDriver uiDriver, String idlFileName) |
From: Robert L. <rle...@us...> - 2007-02-20 15:39:11
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv19014/src/ccmtools/CppGenerator Modified Files: CppLocalGenerator.java CppAssemblyGenerator.java Log Message: C++ assemblies Index: CppLocalGenerator.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator/CppLocalGenerator.java,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** CppLocalGenerator.java 20 Feb 2007 13:38:49 -0000 1.56 --- CppLocalGenerator.java 20 Feb 2007 15:39:03 -0000 1.57 *************** *** 898,928 **** // the templates that we don't want to output (see the component // section of the getOutputFiles function) ! if(file_name.equals("")) ! continue; ! ! File outFile = new File(output_dir + File.separator + file_dir, file_name); ! if((file_dir == implDirectory) && outFile.isFile()) ! { ! if(outFile.getName().endsWith("_entry.h")) ! { ! // *_entry.h files must be overwritten by every generator ! // call because they are part of the component logic ! writeFinalizedFile(file_dir, file_name, generated_code); ! } ! else if(!isCodeEqualWithFile(generated_code, outFile)) ! { ! uiDriver.printMessage("WARNING: " + outFile + " already exists!"); ! file_name += ".new"; ! outFile = new File(output_dir + File.separator + file_dir, file_name); ! } ! } ! if(isCodeEqualWithFile(generated_code, outFile)) ! { ! uiDriver.printMessage("Skipping " + outFile); ! } ! else ! { ! writeFinalizedFile(file_dir, file_name, generated_code); ! } } --- 898,903 ---- // the templates that we don't want to output (see the component // section of the getOutputFiles function) ! if(file_name.length()>0) ! writeSourceFile(implDirectory, generated_code, file_dir, file_name); } *************** *** 936,939 **** --- 911,943 ---- logger.fine("leave writeOutput()"); } + + protected void writeSourceFile( String implDirectory, String generated_code, String file_dir, + String file_name ) throws IOException + { + File outFile = new File(output_dir + File.separator + file_dir, file_name); + if ((file_dir == implDirectory) && outFile.isFile()) + { + if (outFile.getName().endsWith("_entry.h")) + { + // *_entry.h files must be overwritten by every generator + // call because they are part of the component logic + writeFinalizedFile(file_dir, file_name, generated_code); + } + else if (!isCodeEqualWithFile(generated_code, outFile)) + { + uiDriver.printMessage("WARNING: " + outFile + " already exists!"); + file_name += ".new"; + outFile = new File(output_dir + File.separator + file_dir, file_name); + } + } + if (isCodeEqualWithFile(generated_code, outFile)) + { + uiDriver.printMessage("Skipping " + outFile); + } + else + { + writeFinalizedFile(file_dir, file_name, generated_code); + } + } Index: CppAssemblyGenerator.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator/CppAssemblyGenerator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CppAssemblyGenerator.java 20 Feb 2007 13:38:49 -0000 1.1 --- CppAssemblyGenerator.java 20 Feb 2007 15:39:03 -0000 1.2 *************** *** 12,19 **** --- 12,23 ---- import java.io.File; import java.io.IOException; + import java.util.HashMap; + import java.util.HashSet; import java.util.List; + import java.util.Map; import java.util.logging.Logger; import ccmtools.CcmtoolsException; import ccmtools.parser.assembly.metamodel.Assembly; + import ccmtools.parser.assembly.metamodel.Component; import ccmtools.parser.assembly.metamodel.Model; import ccmtools.parser.idl.metamodel.CcmModelHelper; *************** *** 29,32 **** --- 33,43 ---- public class CppAssemblyGenerator extends CppLocalGenerator { + /** + * creates the local C++ assembly generator + * + * @param uiDriver user interface driver + * @param out_dir the directory that will be the root of the output source tree + * @param assemblies the assembly model + */ public CppAssemblyGenerator( UserInterfaceDriver uiDriver, File outDir, Model assemblies ) throws IOException, CcmtoolsException *************** *** 38,45 **** --- 49,70 ---- } + /** + * the assembly model + */ protected Model assemblies; + /** + * the assembly description of the current component (or null) + */ protected Assembly currentAssembly; + /** + * Create a list of lists of pathname components for output files needed by the current node + * type. Only the implementation files of MComponentDef, MHomeDef and MProvidesDef will be + * written (and only if the component is implemented by an assembly). + * + * @return a list of List objects containing file names for all output files to be generated for + * the current node. + */ protected List getOutputFiles() { *************** *** 99,101 **** --- 124,260 ---- return CcmModelHelper.getAbsoluteName(node, Model.IDL_SCOPE); } + + protected static final String TAB = " "; + + protected String data_MComponentDef( String data_type, String data_value ) + { + if (data_type.equals("AssemblyInnerComponentVariable")) + { + return variable_AssemblyInnerComponentVariable(); + } + if (data_type.equals("AssemblyInnerComponentVariableCreation")) + { + return variable_AssemblyInnerComponentVariableCreation(); + } + if (data_type.equals("AssemblyInnerComponentVariableDestruction")) + { + return variable_AssemblyInnerComponentVariableDestruction(); + } + if (data_type.equals("AssemblyInnerComponentInclude")) + { + return variable_AssemblyInnerComponentInclude(); + } + return super.data_MComponentDef(data_type, data_value); + } + + protected String variable_AssemblyInnerComponentVariable() + { + StringBuffer code = new StringBuffer(); + Map<String, MComponentDef> map = getAssemblyLocalComponents(); + for (String key : map.keySet()) + { + MComponentDef comp_def = map.get(key); + String cpp_type = getLocalCxxName(comp_def, "::"); + code.append(TAB + cpp_type + "* " + key + "_;\n"); + for (Object o : comp_def.getFacets()) + { + MProvidesDef p = (MProvidesDef) o; + if (p.getIdentifier().equals(key)) + { + throw new RuntimeException("element \"" + key + + "\": name conflict between IDL and assembly"); + } + } + } + return code.toString(); + } + + protected String variable_AssemblyInnerComponentVariableCreation() + { + StringBuffer code = new StringBuffer(); + Map<String, MComponentDef> map = getAssemblyLocalComponents(); + for (String key : map.keySet()) + { + MComponentDef comp_def = map.get(key); + // TODO + code.append(TAB + key + "_ = 0; // TODO\n"); + } + return code.toString(); + } + + protected String variable_AssemblyInnerComponentVariableDestruction() + { + StringBuffer code = new StringBuffer(); + Map<String, MComponentDef> map = getAssemblyLocalComponents(); + for (String key : map.keySet()) + { + code.append(TAB + "delete " + key + "_;\n"); + } + return code.toString(); + } + + protected String variable_AssemblyInnerComponentInclude() + { + HashSet<String> include_set = new HashSet<String>(); + StringBuffer code = new StringBuffer(); + Map<String, MComponentDef> map = getAssemblyLocalComponents(); + for (String key : map.keySet()) + { + MComponentDef comp_def = map.get(key); + String inc_name = getLocalCxxIncludeName(comp_def); + if (!include_set.contains(inc_name)) + { + code.append("#include <" + inc_name + ".h>\n"); + include_set.add(inc_name); + } + } + return code.toString(); + } + + private Map<String, Map<String, MComponentDef>> assembly_local_components_ = new HashMap<String, Map<String, MComponentDef>>(); + + protected Map<String, MComponentDef> getAssemblyLocalComponents() + { + if (currentAssembly != null) + { + String assembly_key = currentAssembly.getGlobalName(); + Map<String, MComponentDef> map = assembly_local_components_.get(assembly_key); + if (map == null) + { + map = new HashMap<String, MComponentDef>(); + assembly_local_components_.put(assembly_key, map); + Map<String, Component> local_comps = currentAssembly.getComponents(); + for (String key : local_comps.keySet()) + { + Component comp_decl = local_comps.get(key); + MComponentDef comp_def = comp_decl.getCcmName().getCcmComponent(); + if (comp_def == null) + { + throw new RuntimeException("cannot find component " + key + " of type " + + comp_decl.getCcmName()); + } + map.put(key, comp_def); + } + } + return map; + } + else + { + return new HashMap<String, MComponentDef>(); + } + } + + protected void writeSourceFile( String implDirectory, String generated_code, String file_dir, + String file_name ) throws IOException + { + File outFile = new File(output_dir + File.separator + file_dir, file_name); + if (isCodeEqualWithFile(generated_code, outFile)) + { + uiDriver.printMessage("Skipping " + outFile); + } + else + { + writeFinalizedFile(file_dir, file_name, generated_code); + } + } } |
From: Robert L. <rle...@us...> - 2007-02-20 15:37:58
|
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly/test1 In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv18578/test/CppAssembly/test1 Added Files: .cvsignore Makefile test1.assembly test1.idl Log Message: C++ assemblies --- NEW FILE: .cvsignore --- gen --- NEW FILE: test1.idl --- module wamas { module Test { interface I1 { string value(); }; interface I2 { /* empty */ }; interface I3 { /* empty */ }; component C1 { attribute string a1; attribute long a2; provides I1 i1; uses I2 i2; }; home H1 manages C1 { }; component C2 { attribute long b; provides I2 i2; uses I3 i3; }; home H2 manages C2 { }; }; // /module Test component C3 { attribute long b; provides Test::I1 i1; uses Test::I3 i3; }; home H3 manages C3 { }; }; // /module wamas --- NEW FILE: Makefile --- DEST_DIR=gen IDL_INCLUDE=-I${DEST_DIR}/idl/interface -I${DEST_DIR}/idl/component all: local idl: test1.idl ccmmodel -validator test1.idl ccmidl -idl3 -o ${DEST_DIR}/idl test1.idl local: idl ccmtools c++local ${IDL_INCLUDE} -a -o ${DEST_DIR}/interfaces `find ${DEST_DIR}/idl/interface -name '*.idl'` ccmtools c++local ${IDL_INCLUDE} -a -o ${DEST_DIR}/components `find ${DEST_DIR}/idl/component -name '*.idl'` ccmtools c++assembly ${IDL_INCLUDE} -o ${DEST_DIR}/components `find ${DEST_DIR}/idl/component -name '*.idl'` test1.assembly check: local ccmconfix -confix2 -o ${DEST_DIR} -pname "assembly-test1" -pversion "0.0.1" confix2.py --packageroot=`pwd`/${DEST_DIR} --bootstrap --configure --make clean: confix2.py --packageroot=`pwd`/${DEST_DIR} --make --targets=clean rm -rf ${DEST_DIR} --- NEW FILE: test1.assembly --- module wamas { assembly A3 implements C3 { component Test::C1 comp1; component wamas::Test::C2 comp2; connect comp2.i2 to comp1.i2; connect comp1.i1 to this.i1; connect i3 to comp2.i3; constant comp1.a1 = "Hello World"; constant comp1.a2 = 642; attribute comp2.b = this.b; }; }; // /module wamas |
From: Robert L. <rle...@us...> - 2007-02-20 15:37:27
|
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly/test1 In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv18495/test/CppAssembly/test1 Log Message: Directory /cvsroot/ccmtools/ccmtools/test/CppAssembly/test1 added to the repository |
From: Robert L. <rle...@us...> - 2007-02-20 15:37:27
|
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv18495/test/CppAssembly Log Message: Directory /cvsroot/ccmtools/ccmtools/test/CppAssembly added to the repository |
From: Robert L. <rle...@us...> - 2007-02-20 15:36:44
|
Update of /cvsroot/ccmtools/ccmtools/src/templates/CppLocalTemplates In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv18099/src/templates/CppLocalTemplates Modified Files: MComponentDef Log Message: C++ assemblies Index: MComponentDef =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/templates/CppLocalTemplates/MComponentDef,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** MComponentDef 5 Jan 2007 14:17:24 -0000 1.23 --- MComponentDef 20 Feb 2007 15:36:41 -0000 1.24 *************** *** 405,408 **** --- 405,409 ---- #include <%(ComponentInclude)s_share.h> + %(AssemblyInnerComponentInclude)s %(OpenNamespace)s *************** *** 426,429 **** --- 427,431 ---- %(MAttributeDefVariable)s %(MSupportsDefVariable)s + %(AssemblyInnerComponentVariable)s public: *************** *** 486,495 **** %(Identifier)s_impl::%(Identifier)s_impl() { ! // OPTIONAL : IMPLEMENT ME HERE ! } %(Identifier)s_impl::~%(Identifier)s_impl() { ! // OPTIONAL : IMPLEMENT ME HERE ! } --- 488,497 ---- %(Identifier)s_impl::%(Identifier)s_impl() { ! %(AssemblyInnerComponentVariableCreation)s } %(Identifier)s_impl::~%(Identifier)s_impl() { ! %(AssemblyInnerComponentVariableDestruction)s } |
From: Robert L. <rle...@us...> - 2007-02-20 13:39:07
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv32500/src/ccmtools/CppGenerator Modified Files: CppLocalGenerator.java Added Files: CppAssemblyGenerator.java Log Message: C++ assemblies Index: CppLocalGenerator.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator/CppLocalGenerator.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** CppLocalGenerator.java 13 Feb 2007 10:16:11 -0000 1.55 --- CppLocalGenerator.java 20 Feb 2007 13:38:49 -0000 1.56 *************** *** 931,934 **** --- 931,935 ---- catch(Exception e) { + e.printStackTrace(); uiDriver.printError("!!!Error " + e.getMessage()); } *************** *** 1005,1013 **** f = new ArrayList(); f.add(implDirectory); ! f.add(node_name + "_impl.h"); files.add(f); f = new ArrayList(); f.add(implDirectory); ! f.add(node_name + "_impl.cc"); files.add(f); } --- 1006,1014 ---- f = new ArrayList(); f.add(implDirectory); ! f.add(node_name + IMPL_SUFFIX_H); files.add(f); f = new ArrayList(); f.add(implDirectory); ! f.add(node_name + IMPL_SUFFIX_CC); files.add(f); } *************** *** 1055,1063 **** f = new ArrayList(); f.add(implDirectory); ! f.add(component.getIdentifier() + "_" + node_name + "_impl.h"); files.add(f); f = new ArrayList(); f.add(implDirectory); ! f.add(component.getIdentifier() + "_" + node_name + "_impl.cc"); files.add(f); } --- 1056,1064 ---- f = new ArrayList(); f.add(implDirectory); ! f.add(component.getIdentifier() + "_" + node_name + IMPL_SUFFIX_H); files.add(f); f = new ArrayList(); f.add(implDirectory); ! f.add(component.getIdentifier() + "_" + node_name + IMPL_SUFFIX_CC); files.add(f); } *************** *** 1082,1085 **** --- 1083,1089 ---- return files; } + + protected static final String IMPL_SUFFIX_H = "_impl.h"; + protected static final String IMPL_SUFFIX_CC = "_impl.cc"; protected String getCxxOutputDirectory(String component) --- NEW FILE: CppAssemblyGenerator.java --- /* * Created on Feb 20, 2007 * * R&D Salomon Automation (http://www.salomon.at) * * Robert Lechner (rob...@sa...) * * $Id: CppAssemblyGenerator.java,v 1.1 2007/02/20 13:38:49 rlechner Exp $ */ package ccmtools.CppGenerator; import java.io.File; import java.io.IOException; import java.util.List; import java.util.logging.Logger; import ccmtools.CcmtoolsException; import ccmtools.parser.assembly.metamodel.Assembly; import ccmtools.parser.assembly.metamodel.Model; import ccmtools.parser.idl.metamodel.CcmModelHelper; import ccmtools.parser.idl.metamodel.BaseIDL.MContained; import ccmtools.parser.idl.metamodel.ComponentIDL.MComponentDef; import ccmtools.parser.idl.metamodel.ComponentIDL.MHomeDef; import ccmtools.parser.idl.metamodel.ComponentIDL.MProvidesDef; import ccmtools.ui.UserInterfaceDriver; /** * local C++ assembly generator */ public class CppAssemblyGenerator extends CppLocalGenerator { public CppAssemblyGenerator( UserInterfaceDriver uiDriver, File outDir, Model assemblies ) throws IOException, CcmtoolsException { super(uiDriver, outDir); logger = Logger.getLogger("ccm.generator.cpp.assembly"); this.assemblies = assemblies; setFlag(FLAG_APPLICATION_FILES); } protected Model assemblies; protected Assembly currentAssembly; protected List getOutputFiles() { logger.fine("enter getOutputFiles(), searching for assembly"); currentAssembly = null; if (currentNode instanceof MComponentDef) { MComponentDef def = (MComponentDef) currentNode; currentAssembly = getAssemblyDescription(def); } else if (currentNode instanceof MHomeDef) { MHomeDef def = (MHomeDef) currentNode; currentAssembly = getAssemblyDescription(def.getComponent()); } else if (currentNode instanceof MProvidesDef) { MProvidesDef def = (MProvidesDef) currentNode; currentAssembly = getAssemblyDescription(def.getComponent()); } logger.fine("leave getOutputFiles(), searching for assembly"); List files = super.getOutputFiles(); if (currentAssembly != null) keep_only_impls(files); else kill_all_files(files); return files; } protected static void keep_only_impls( List files ) { for (Object o : files) { List out_path = (List) o; String x = out_path.get(1).toString(); if (!x.endsWith(IMPL_SUFFIX_H) && !x.endsWith(IMPL_SUFFIX_CC)) out_path.set(1, ""); } } protected static void kill_all_files( List files ) { for (Object o : files) { List out_path = (List) o; out_path.set(1, ""); } } protected Assembly getAssemblyDescription( MComponentDef def ) { return assemblies.getAssembly(getQualifiedCcmName(def)); } protected static String getQualifiedCcmName( MContained node ) { return CcmModelHelper.getAbsoluteName(node, Model.IDL_SCOPE); } } |
From: Robert L. <rle...@us...> - 2007-02-20 13:38:54
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv32500/src/ccmtools Modified Files: Constants.java Log Message: C++ assemblies Index: Constants.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/Constants.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Constants.java 15 Feb 2007 13:18:37 -0000 1.25 --- Constants.java 20 Feb 2007 13:38:50 -0000 1.26 *************** *** 51,54 **** --- 51,55 ---- + " c++local Generate local C++ components \n" + " c++local-test Generate local C++ test client\n" + + " c++assembly Generate local C++ assemblies \n" + " c++dbc Generate local C++ components with DbC (experimental)\n" + " c++remote Generate remote C++ components (for Mico ORB)"; *************** *** 56,61 **** public static final String[] GENERATOR_TYPES = { ! "c++local", "c++local-test", "c++dbc", "c++remote", ! "c++remote-test", "idl3", "idl3mirror", "idl2" }; } --- 57,63 ---- public static final String[] GENERATOR_TYPES = { ! "c++local", "c++local-test", "c++dbc", "c++assembly", ! "c++remote", "c++remote-test", ! "idl3", "idl3mirror", "idl2" }; } |
From: Robert L. <rle...@us...> - 2007-02-20 13:38:53
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/ui In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv32500/src/ccmtools/ui Modified Files: Main.java Log Message: C++ assemblies Index: Main.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/ui/Main.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Main.java 19 Jan 2007 12:07:31 -0000 1.6 --- Main.java 20 Feb 2007 13:38:50 -0000 1.7 *************** *** 27,31 **** import java.util.List; import java.util.logging.Logger; - import ccmtools.CcmtoolsException; import ccmtools.Constants; --- 27,30 ---- *************** *** 34,41 **** --- 33,42 ---- import ccmtools.CodeGenerator.GraphTraverser; import ccmtools.CodeGenerator.TemplateHandler; + import ccmtools.CppGenerator.CppAssemblyGenerator; import ccmtools.CppGenerator.CppLocalGenerator; import ccmtools.CppGenerator.CppLocalTestGenerator; import ccmtools.CppGenerator.CppRemoteGenerator; import ccmtools.CppGenerator.CppRemoteTestGenerator; + import ccmtools.parser.assembly.metamodel.Model; import ccmtools.parser.idl.metamodel.CcmModelHelper; import ccmtools.parser.idl.metamodel.BaseIDL.MContainer; *************** *** 60,68 **** private static String includePath; ! private static List<String> filenames; private static File outputDirectory = new File(System.getProperty("user.dir")); private static File baseOutputDirectory = new File(outputDirectory, ""); private static int generateFlags = 0; --- 61,73 ---- private static String includePath; ! private static List<String> idl_filenames; ! private static List<String> assembly_filenames; private static File outputDirectory = new File(System.getProperty("user.dir")); private static File baseOutputDirectory = new File(outputDirectory, ""); private static int generateFlags = 0; + + // assembly model + private static Model assemblies; *************** *** 166,174 **** } ! MContainer ccmModel = null; ! for(Iterator f = filenames.iterator(); f.hasNext();) { String fileName = (String)f.next(); ! ccmModel = CcmModelHelper.loadCcmModel(uiDriver, fileName, includePath); uiDriver.printMessage("traverse CCM model"); traverser.traverseGraph(ccmModel); --- 171,180 ---- } ! for(Iterator f = idl_filenames.iterator(); f.hasNext();) { String fileName = (String)f.next(); ! MContainer ccmModel = CcmModelHelper.loadCcmModel(uiDriver, fileName, includePath); ! if(assemblies!=null) ! assemblies.updateCcmModel(ccmModel); uiDriver.printMessage("traverse CCM model"); traverser.traverseGraph(ccmModel); *************** *** 266,269 **** --- 272,283 ---- handler = new CppLocalGenerator(driver, outputDirectory); } + else if(generatorType.equalsIgnoreCase("c++assembly")) + { + if(assemblies==null) + { + assemblies = ccmtools.parser.assembly.Main.parse(assembly_filenames); + } + handler = new CppAssemblyGenerator(driver, outputDirectory, assemblies); + } else if(generatorType.equalsIgnoreCase("c++local-test")) { *************** *** 326,330 **** usedGeneratorTypes = new ArrayList<String>(); availableGeneratorTypes = new ArrayList<String>(); ! filenames = new ArrayList<String>(); includePath = ""; --- 340,345 ---- usedGeneratorTypes = new ArrayList<String>(); availableGeneratorTypes = new ArrayList<String>(); ! idl_filenames = new ArrayList<String>(); ! assembly_filenames = new ArrayList<String>(); includePath = ""; *************** *** 389,393 **** } else { ! filenames.add(arg); } } --- 404,414 ---- } else { ! String x = arg.toLowerCase(); ! if(x.endsWith(".idl")) ! idl_filenames.add(arg); ! else if(x.endsWith(".assembly")) ! assembly_filenames.add(arg); ! else ! throw new IllegalArgumentException("unknown file type: "+arg); } } |
From: Robert L. <rle...@us...> - 2007-02-20 13:17:50
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv24504/src/ccmtools/generator/java/metamodel Modified Files: ComponentDef.java Log Message: Java assemblies Index: ComponentDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/ComponentDef.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** ComponentDef.java 19 Feb 2007 12:26:54 -0000 1.24 --- ComponentDef.java 20 Feb 2007 13:17:44 -0000 1.25 *************** *** 28,32 **** import ccmtools.parser.assembly.metamodel.Port; import ccmtools.parser.idl.metamodel.CcmModelHelper; - import ccmtools.parser.idl.metamodel.BaseIDL.MContained; import ccmtools.parser.idl.metamodel.ComponentIDL.MComponentDef; import ccmtools.parser.idl.metamodel.ComponentIDL.MHomeDef; --- 28,31 ---- |
From: Robert L. <rle...@us...> - 2007-02-20 07:23:56
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/templates In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv20318/src/ccmtools/generator/java/templates Modified Files: ComponentDefAssemblyClassTemplate.java Log Message: missing operation 'remove' implemented Index: ComponentDefAssemblyClassTemplate.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/templates/ComponentDefAssemblyClassTemplate.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ComponentDefAssemblyClassTemplate.java 19 Feb 2007 09:09:42 -0000 1.5 --- ComponentDefAssemblyClassTemplate.java 20 Feb 2007 07:23:53 -0000 1.6 *************** *** 47,52 **** protected final String TEXT_30 = NL + "\t\t\t"; protected final String TEXT_31 = "_.configuration_complete();"; ! protected final String TEXT_32 = " " + NL + " \t} catch(Exception e) {" + NL + " \t\tthrow new CCMException(e.getMessage(), CCMExceptionReason.CREATE_ERROR);" + NL + " \t}" + NL + " }" + NL + "" + NL + " public void ccm_passivate() " + NL + " throws CCMException" + NL + " {" + NL + " // OPTIONAL: IMPLEMENT ME HERE !" + NL + " }" + NL + "" + NL + " public void ccm_remove() " + NL + " throws CCMException" + NL + " {" + NL + " // OPTIONAL: IMPLEMENT ME HERE !" + NL + " }" + NL + "}"; ! protected final String TEXT_33 = NL; public String generate(Object argument) --- 47,55 ---- protected final String TEXT_30 = NL + "\t\t\t"; protected final String TEXT_31 = "_.configuration_complete();"; ! protected final String TEXT_32 = " " + NL + " \t} catch(Exception e) {" + NL + " \t\tthrow new CCMException(e.getMessage(), CCMExceptionReason.CREATE_ERROR);" + NL + " \t}" + NL + " }" + NL + "" + NL + " public void ccm_passivate() " + NL + " throws CCMException" + NL + " {" + NL + " // Who calls this method?" + NL + " }" + NL + "" + NL + " public void ccm_remove() " + NL + " throws CCMException" + NL + " {" + NL + " \ttry {"; ! protected final String TEXT_33 = NL + "\t\t\t"; ! protected final String TEXT_34 = "_.remove();"; ! protected final String TEXT_35 = NL + "\t\t} catch(Exception e) {" + NL + " \t\tthrow new CCMException(e.getMessage(), CCMExceptionReason.REMOVE_ERROR);" + NL + "\t\t} " + NL + " }" + NL + "}"; ! protected final String TEXT_36 = NL; public String generate(Object argument) *************** *** 193,197 **** --- 196,211 ---- stringBuffer.append(TEXT_32); + + for (String key : component.getAssemblyLocalComponents().keySet()) + { + stringBuffer.append(TEXT_33); + stringBuffer.append(key); + stringBuffer.append(TEXT_34); + + } + + stringBuffer.append(TEXT_35); + stringBuffer.append(TEXT_36); return stringBuffer.toString(); } |
From: Robert L. <rle...@us...> - 2007-02-20 07:23:56
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/templates/jet In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv20318/src/ccmtools/generator/java/templates/jet Modified Files: ComponentDefAssemblyClass.jet Log Message: missing operation 'remove' implemented Index: ComponentDefAssemblyClass.jet =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/templates/jet/ComponentDefAssemblyClass.jet,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ComponentDefAssemblyClass.jet 19 Feb 2007 09:09:42 -0000 1.5 --- ComponentDefAssemblyClass.jet 20 Feb 2007 07:23:52 -0000 1.6 *************** *** 185,189 **** throws CCMException { ! // OPTIONAL: IMPLEMENT ME HERE ! } --- 185,189 ---- throws CCMException { ! // Who calls this method? } *************** *** 191,195 **** throws CCMException { ! // OPTIONAL: IMPLEMENT ME HERE ! } } --- 191,206 ---- throws CCMException { ! try { ! <% ! for (String key : component.getAssemblyLocalComponents().keySet()) ! { ! %> ! <%=key%>_.remove(); ! <% ! } ! %> ! } catch(Exception e) { ! throw new CCMException(e.getMessage(), CCMExceptionReason.REMOVE_ERROR); ! } } } |
From: Robert L. <rle...@us...> - 2007-02-19 12:27:00
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10827/src/ccmtools/generator/java/metamodel Modified Files: ComponentDef.java Log Message: Java assemblies Index: ComponentDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/ComponentDef.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** ComponentDef.java 19 Feb 2007 09:39:22 -0000 1.23 --- ComponentDef.java 19 Feb 2007 12:26:54 -0000 1.24 *************** *** 28,31 **** --- 28,32 ---- import ccmtools.parser.assembly.metamodel.Port; import ccmtools.parser.idl.metamodel.CcmModelHelper; + import ccmtools.parser.idl.metamodel.BaseIDL.MContained; import ccmtools.parser.idl.metamodel.ComponentIDL.MComponentDef; import ccmtools.parser.idl.metamodel.ComponentIDL.MHomeDef; *************** *** 294,297 **** --- 295,306 ---- String code = TAB + "private " + java_type + " " + key + "_;"; list.add(code); + for (ProvidesDef p : getFacet()) + { + if (p.getIdentifier().equals(key)) + { + throw new RuntimeException("element \"" + key + + "\": name conflict between IDL and assembly"); + } + } } return list.iterator(); |
From: Robert L. <rle...@us...> - 2007-02-19 12:26:59
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10827/src/ccmtools/parser/assembly Modified Files: Main.java Log Message: Java assemblies Index: Main.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/Main.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Main.java 15 Feb 2007 13:18:37 -0000 1.5 --- Main.java 19 Feb 2007 12:26:54 -0000 1.6 *************** *** 67,71 **** catch (Exception e) { ! throw new RuntimeException("problem with: " + f, e); } } --- 67,71 ---- catch (Exception e) { ! throw new RuntimeException("file \""+f+"\": "+e.getMessage()); } } |
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/sample_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10538/test/JavaAssembly/sample_logger Added Files: .cvsignore stderr_logger.idl stderr_logger.assembly io.idl Makefile logger.idl console.idl Log Message: small real world sample --- NEW FILE: .cvsignore --- wamas --- NEW FILE: stderr_logger.idl --- #include "logger.idl" #include "console.idl" module wamas { module helpers { component StdErrLogger { provides wamas::io::LoggerItf logger; }; }; // /module helpers }; // /module wamas --- NEW FILE: io.idl --- #ifndef wamas_io_IDL #define wamas_io_IDL module wamas { module io { interface InputStream { char read(); }; interface OutputStream { void write(in char c); }; }; // /module io }; // /module wamas #endif --- NEW FILE: Makefile --- all: ccmjava -iface -local *.idl ccmjava -assembly *.assembly *.idl javac `find -name '*.java'` rm `find -name '*.class'` setup: rm -rf wamas ccmjava -app *.idl --- NEW FILE: logger.idl --- #ifndef wamas_logger_IDL #define wamas_logger_IDL #include "io.idl" module wamas { module io { interface LoggerItf { void print(in string message); }; component OutputStreamLogger { provides LoggerItf logger; uses OutputStream stream; }; }; // /module io }; // /module wamas #endif --- NEW FILE: console.idl --- #ifndef wamas_console_IDL #define wamas_console_IDL #include "io.idl" module wamas { module system { component Console { provides wamas::io::InputStream stdin; provides wamas::io::OutputStream stdout; provides wamas::io::OutputStream stderr; }; home ConsoleHome manages Console { }; }; // /module system }; // /module wamas #endif --- NEW FILE: stderr_logger.assembly --- module wamas { module helpers { assembly implements StdErrLogger { component wamas::system::Console console; component wamas::io::OutputStreamLogger os_logger; connect console.stderr to os_logger.stream; connect os_logger.logger to this.logger; }; }; // /module helpers }; // /module wamas |
From: Robert L. <rle...@us...> - 2007-02-19 12:25:28
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/sample_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10417/test/JavaAssembly/sample_logger Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/sample_logger added to the repository |
From: Robert L. <rle...@us...> - 2007-02-19 09:39:29
|
Update of /cvsroot/ccmtools/ccmtools In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10938 Modified Files: build.xml Log Message: Java assemblies Index: build.xml =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/build.xml,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -d -r1.76 -r1.77 *** build.xml 14 Feb 2007 12:29:49 -0000 1.76 --- build.xml 19 Feb 2007 09:39:21 -0000 1.77 *************** *** 102,106 **** <!-- Compile ccmtools source code --> ! <target name="compile.ccmtools" depends="generate.IDL3Parser, generate.IdlScanner, generate.IdlParser" description="Compile the ccmtools package." > <javac srcdir="${src}/ccmtools:${src-gen}" destdir="${build}/classes" --- 102,106 ---- <!-- Compile ccmtools source code --> ! <target name="compile.ccmtools" depends="generate.IDL3Parser, generate.IdlScanner, generate.IdlParser, generate.AssemblyLexer, generate.AssemblyParser" description="Compile the ccmtools package." > <javac srcdir="${src}/ccmtools:${src-gen}" destdir="${build}/classes" |
From: Robert L. <rle...@us...> - 2007-02-19 09:39:29
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10938/src/ccmtools/generator/java/metamodel Modified Files: ComponentDef.java Log Message: Java assemblies Index: ComponentDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/ComponentDef.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** ComponentDef.java 19 Feb 2007 09:09:42 -0000 1.22 --- ComponentDef.java 19 Feb 2007 09:39:22 -0000 1.23 *************** *** 4,7 **** --- 4,8 ---- import java.util.ArrayList; import java.util.HashMap; + import java.util.HashSet; import java.util.Iterator; import java.util.List; *************** *** 326,329 **** --- 327,331 ---- public Iterator getAssemblyAttributeSetup() { + HashSet<String> outer_facets = new HashSet<String>(); ArrayList<String> list = new ArrayList<String>(); for (AssemblyElement e : assembly_.getElements()) *************** *** 335,343 **** String code_tail; Port target = c.getReceptacle(); ! String target_name=target.getConnector(); ! if(target.getComponent()==null) { // connect to an outer facet ! String check=TAB3+"if("+target_name+"_!=null)"; list.add(check); code.append(TAB4); --- 337,345 ---- String code_tail; Port target = c.getReceptacle(); ! String target_name = target.getConnector(); ! if (target.getComponent() == null) { // connect to an outer facet ! String check = TAB3 + "if(" + target_name + "_!=null)"; list.add(check); code.append(TAB4); *************** *** 345,348 **** --- 347,351 ---- code.append("_.target = "); code_tail = ";"; + outer_facets.add(target_name); } else *************** *** 404,411 **** } } return list.iterator(); } - /*********************************************************************************************** * Client Library Generator Methods --- 407,422 ---- } } + for (ProvidesDef p : getFacet()) + { + String name = p.getIdentifier(); + if (!outer_facets.contains(name)) + { + throw new RuntimeException("facet " + name + + " is not connected to an inner component"); + } + } return list.iterator(); } /*********************************************************************************************** * Client Library Generator Methods |
From: Robert L. <rle...@us...> - 2007-02-19 09:38:55
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10545/src/ccmtools/parser/assembly Modified Files: assembly.flex Log Message: don't remove escape sequences from strings Index: assembly.flex =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/assembly.flex,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** assembly.flex 12 Feb 2007 14:08:31 -0000 1.2 --- assembly.flex 19 Feb 2007 09:38:48 -0000 1.3 *************** *** 59,64 **** ScopedName = "::"? {Identifier} "::" {Identifier} ("::" {Identifier})* ! OctDigit = [0-7] ! StringCharacter = [^\r\n\"\\] Number = {DecInteger} | {HexInteger} | {Double} --- 59,63 ---- ScopedName = "::"? {Identifier} "::" {Identifier} ("::" {Identifier})* ! StringCharacter = [^\r\n\"] Number = {DecInteger} | {HexInteger} | {Double} *************** *** 127,145 **** {StringCharacter}+ { string.append( yytext() ); } - /* escape sequences */ - "\\b" { string.append( '\b' ); } - "\\t" { string.append( '\t' ); } - "\\n" { string.append( '\n' ); } - "\\f" { string.append( '\f' ); } - "\\r" { string.append( '\r' ); } - "\\\"" { string.append( '\"' ); } - "\\'" { string.append( '\'' ); } - "\\\\" { string.append( '\\' ); } - \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1),8); - string.append( val ); } - - /* error cases */ - \\. { throw new RuntimeException("Illegal escape sequence \"" - +yytext()+"\""); } {LineTerminator} { throw new RuntimeException("Unterminated string at end of line"); } } --- 126,129 ---- |