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: Teiniker E. <tei...@us...> - 2007-02-25 10:53:41
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/interface In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/idl3/interface Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/interface added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:41
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/component In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/idl3/component Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/component added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:41
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/src-gen/wamas/Test In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/src-gen/wamas/Test Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/src-gen/wamas/Test added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:41
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/interface/wamas In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/idl3/interface/wamas Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/interface/wamas added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:41
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/src/wamas/Test In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/src/wamas/Test Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/src/wamas/Test added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:39
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/interface/wamas/Test In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/idl3/interface/wamas/Test Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/interface/wamas/Test added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:38
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/component/wamas/Test In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/idl3/component/wamas/Test Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/component/wamas/Test added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:38
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/component/wamas In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/xxx/idl3/component/wamas Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/xxx/idl3/component/wamas added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:38
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/bin In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/bin Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/bin added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-25 10:53:38
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/impl In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14239/test/JavaAssembly/prototype2/impl Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/prototype2/impl added to the repository |
From: Teiniker E. <tei...@us...> - 2007-02-24 14:39:12
|
Update of /cvsroot/ccmtools/cpp-environment In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv29200 Modified Files: INSTALL Log Message: Updated install instructions for the C++ runtime lib. Index: INSTALL =================================================================== RCS file: /cvsroot/ccmtools/cpp-environment/INSTALL,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** INSTALL 17 Jul 2006 07:31:23 -0000 1.15 --- INSTALL 24 Feb 2007 14:39:05 -0000 1.16 *************** *** 7,16 **** http://confix.sf.net/. Then you will be informed ;-) ! Here is an example of a possible Confix profile (stored in ~/.confix): # The Confix profile for CCM Tools ccmtools_profile = { ! 'PREFIX': '/home/eteinik/install/ccmtools_install', ! 'BUILDROOT': '/home/eteinik/tmp/ccmtools_build', 'ADVANCED': 'true', 'USE_LIBTOOL': 'true', --- 7,16 ---- http://confix.sf.net/. Then you will be informed ;-) ! Here is an example of a possible Confix profile (stored in ~/.confix2/config): # The Confix profile for CCM Tools ccmtools_profile = { ! 'PREFIX': '/your/path/to/confix_install', ! 'BUILDROOT': '/your/path/to/confix_build', 'ADVANCED': 'true', 'USE_LIBTOOL': 'true', *************** *** 21,29 **** 'CC': 'gcc', 'CXX': 'g++', ! 'CFLAGS': "-g -O0 -Wall -DWXDEBUG", ! 'CXXFLAGS': "-g -O0 -Wall -DWXDEBUG", }, 'ARGS': [ ! '--with-mico=/opt/gcc-3.3.4/mico-2.3.11-debug/lib/mico-setup.sh' ] }, --- 21,29 ---- 'CC': 'gcc', 'CXX': 'g++', ! 'CFLAGS': "-g -O0 -Wall", ! 'CXXFLAGS': "-g -O0 -Wall", }, 'ARGS': [ ! '--with-mico=/your/path/to/mico/lib/mico-setup.sh' ] }, *************** *** 33,36 **** --- 33,37 ---- + Install from source code: ------------------------- *************** *** 40,69 **** # Install the CCM Tolls runtime libraries # (be sure that you have already installed Mico - http://mico.org) - $ confix.py --packageroot=`pwd`/ccm --bootstrap --configure --make --targets=install ! Install CCM Tools runtime environment from dist files: ! ------------------------------------------------------ ! ! To establish a proper C++ runtime environment from dist files, you have to ! install three packages: ! ! a) wx-toolsbox-0.2.1.tar.bz2 ! $ tar xvjf wx-toolsbox-0.2.1.tar.bz2 ! $ cd wx-toolsbox-0.2.1 ! $ confix --packageroot=`pwd`/ccm --bootstrap --configure --make --targets="install" ! $ make install ! ! b) wx-utils-1.2.0.tar.bz2 ! $ tar xvjf wx-utils-1.2.0.tar.bz2 ! $ cd wx-utils-1.2.0 ! $ confix --packageroot=`pwd`/ccm --bootstrap --configure --make --targets="install" ! $ make install ! ! c) ccm-runtime-0.7.0.tar.gz ! $ tar xvzf ccm-runtime-0.7.0.tar.gz ! $ cd ccm-runtime-0.7.0 ! $ confix --packageroot=`pwd`/ccm --bootstrap --configure --make --targets="install" ! $ make install ! --- 41,62 ---- # Install the CCM Tolls runtime libraries # (be sure that you have already installed Mico - http://mico.org) + # Check out the source from CVS repository + $ cvs -d :pserver:ano...@cc...:/cvsroot/ccmtools co cpp-environment + # or for registered developers + $ cvs -d :ext:<username>@ccmtools.cvs.sf.net:/cvsroot/ccmtools co cpp-environment + + # Change to the cpp-environment directory + $ cd cpp-environment + # 1. Install the externals package (Confix references to external libraries) + $ confix2.py --packageroot=`pwd`/externals --bootstrap --configure --make --targets=install + + # 2. Install the utils package + $ confix2.py --packageroot=`pwd`/utils --bootstrap --configure --make --targets=install + + # 3. Install the ccm-runtime package + $ confix2.py --packageroot=`pwd`/ccm --bootstrap --configure --make --targets=install ! # That's it! ! # Now, we are ready to generate and build C++ components. |
From: Robert L. <rle...@us...> - 2007-02-23 14:16:31
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/deploy_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10236/test/JavaAssembly/deploy_logger Modified Files: stderr_logger.assembly Log Message: using alias names for inner components Index: stderr_logger.assembly =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/JavaAssembly/deploy_logger/stderr_logger.assembly,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** stderr_logger.assembly 23 Feb 2007 13:15:11 -0000 1.1 --- stderr_logger.assembly 23 Feb 2007 14:16:28 -0000 1.2 *************** *** 5,9 **** assembly implements StdErrLogger { ! component wamas::system::Console console; component wamas::io::OutputStreamLogger os_logger; --- 5,9 ---- assembly implements StdErrLogger { ! component wamas::system::Console alias "Console" console; component wamas::io::OutputStreamLogger os_logger; |
From: Robert L. <rle...@us...> - 2007-02-23 14:16:00
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv9880/src/ccmtools/generator/java/metamodel Modified Files: ComponentDef.java Log Message: using alias names for inner components Index: ComponentDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/ComponentDef.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** ComponentDef.java 20 Feb 2007 13:17:44 -0000 1.25 --- ComponentDef.java 23 Feb 2007 14:15:57 -0000 1.26 *************** *** 312,331 **** { MComponentDef comp_def = assembly_local_components_.get(key); ! List homes = comp_def.getHomes(); ! if (homes.size() > 0) { ! // using first home ! MHomeDef home = (MHomeDef) homes.get(0); ! String hn = CcmModelHelper.getAbsoluteName(home, "."); ! String code = TAB3 + key + "_ = ((" + hn + ")" + hn ! + "Deployment.create()).create();"; ! list.add(code); } else { ! // no home ! String cn = CcmModelHelper.getAbsoluteName(comp_def, "."); ! String code = TAB3 + key + "_ = new " + cn + "Adapter(new " + cn + "Impl());"; ! list.add(code); } } --- 312,346 ---- { MComponentDef comp_def = assembly_local_components_.get(key); ! String comp_alias = assembly_.getComponents().get(key).getAlias(); ! if (comp_alias != null) { ! // calling home-finder ! String cn = CcmModelHelper.getAbsoluteName(comp_def, "."); ! StringBuilder code = new StringBuilder(); ! code.append(TAB3).append(key).append("_ = (").append(cn).append("Adapter)"); ! code.append("((Components.KeylessCCMHome)"); ! code.append("Components.HomeFinder.instance().find_home_by_name(\""); ! code.append(comp_alias).append("\")).create_component();"); ! list.add(code.toString()); } else { ! List homes = comp_def.getHomes(); ! if (homes.size() > 0) ! { ! // using first home ! MHomeDef home = (MHomeDef) homes.get(0); ! String hn = CcmModelHelper.getAbsoluteName(home, "."); ! String code = TAB3 + key + "_ = ((" + hn + ")" + hn ! + "Deployment.create()).create();"; ! list.add(code); ! } ! else ! { ! // no home ! String cn = CcmModelHelper.getAbsoluteName(comp_def, "."); ! String code = TAB3 + key + "_ = new " + cn + "Adapter(new " + cn + "Impl());"; ! list.add(code); ! } } } |
From: Robert L. <rle...@us...> - 2007-02-23 14:15:41
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv9857/src/ccmtools/parser/assembly/metamodel Modified Files: Component.java Log Message: using alias names for inner components Index: Component.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/Component.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Component.java 15 Feb 2007 16:46:41 -0000 1.4 --- Component.java 23 Feb 2007 14:15:34 -0000 1.5 *************** *** 18,35 **** public class Component extends AssemblyElement { private QualifiedName idl_name_; private String name_; public Component( QualifiedName idl_name, String name ) { idl_name_ = idl_name; name_ = name; } ! public QualifiedName getCcmName() { return idl_name_; } void postProcessing( Assembly parent, Map<String, Component> components ) --- 18,58 ---- public class Component extends AssemblyElement { + /** + * qualified IDL name of the component + */ private QualifiedName idl_name_; + /** + * name of the instance + */ private String name_; + /** + * the component will be deployed under that name (or null if we have to instantiate the home + * directly) + */ + private String alias_; + public Component( QualifiedName idl_name, String name ) { + this(idl_name, name, null); + } + + public Component( QualifiedName idl_name, String name, String alias ) + { idl_name_ = idl_name; name_ = name; + alias_ = alias; } ! public QualifiedName getCcmName() { return idl_name_; } + + public String getAlias() + { + return alias_; + } void postProcessing( Assembly parent, Map<String, Component> components ) *************** *** 46,50 **** public void prettyPrint( PrintStream out, String offset ) { ! out.println(offset + "component " + idl_name_ + " " + name_ + " ;"); } } --- 69,86 ---- public void prettyPrint( PrintStream out, String offset ) { ! StringBuilder text = new StringBuilder(); ! text.append(offset); ! text.append("component "); ! text.append(idl_name_); ! if (alias_ != null) ! { ! text.append(" alias \""); ! text.append(alias_); ! text.append("\""); ! } ! text.append(" "); ! text.append(name_); ! text.append(" ;"); ! out.println(text.toString()); } } |
From: Robert L. <rle...@us...> - 2007-02-23 14:15:41
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv9857/src/ccmtools/parser/assembly Modified Files: assembly.flex bnf.txt assembly.cup Log Message: using alias names for inner components Index: assembly.cup =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/assembly.cup,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** assembly.cup 14 Feb 2007 12:27:06 -0000 1.3 --- assembly.cup 23 Feb 2007 14:15:33 -0000 1.4 *************** *** 41,45 **** ! terminal ASSEMBLY, ATTRIBUTE; terminal COMPONENT, CONNECT, CONSTANT; terminal IMPLEMENTS, MODULE, THIS, TO; --- 41,45 ---- ! terminal ALIAS, ASSEMBLY, ATTRIBUTE; terminal COMPONENT, CONNECT, CONSTANT; terminal IMPLEMENTS, MODULE, THIS, TO; *************** *** 162,165 **** --- 162,170 ---- :} | + COMPONENT qualified_name:v1 ALIAS STRING:v3 NAME:v2 SEMICOLON + {: + RESULT = new ccmtools.parser.assembly.metamodel.Component(v1, v2, v3); + :} + | CONNECT port:v1 TO port:v2 SEMICOLON {: Index: bnf.txt =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/bnf.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** bnf.txt 12 Feb 2007 14:08:31 -0000 1.3 --- bnf.txt 23 Feb 2007 14:15:33 -0000 1.4 *************** *** 9,17 **** module := "module" NAME "{" (model_element)* "}" ";" ! assembly := "assembly" NAME "implements" QN "{" (assembly_element)* "}" ";" assembly_element := component | connection | attribute | constant ! component := "component" QN NAME ";" connection := "connect" port "to" port ";" --- 9,17 ---- module := "module" NAME "{" (model_element)* "}" ";" ! assembly := "assembly" (NAME)? "implements" NAME "{" (assembly_element)* "}" ";" assembly_element := component | connection | attribute | constant ! component := "component" QN ("alias" STRING)? NAME ";" connection := "connect" port "to" port ";" *************** *** 26,30 **** attribute := "attribute" internal_port "=" external_port ";" ! constant := "constant" internal_port "=" TEXT ";" --- 26,32 ---- attribute := "attribute" internal_port "=" external_port ";" ! constant := "constant" internal_port "=" value ";" ! ! value := STRING | NUMBER Index: assembly.flex =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/assembly.flex,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** assembly.flex 23 Feb 2007 09:58:38 -0000 1.4 --- assembly.flex 23 Feb 2007 14:15:33 -0000 1.5 *************** *** 77,80 **** --- 77,81 ---- { /* reserved words */ + "alias" { return symbol(sym.ALIAS); } "assembly" { return symbol(sym.ASSEMBLY); } "attribute" { return symbol(sym.ATTRIBUTE); } |
From: Robert L. <rle...@us...> - 2007-02-23 13:15:14
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/deploy_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv20023/test/JavaAssembly/deploy_logger Added Files: logger.idl Makefile Main.java console.idl .cvsignore ConsolestderrImpl.java io.idl stderr_logger.assembly OutputStreamLoggerloggerImpl.java stderr_logger.idl Log Message: deploys and creates all components by name --- NEW FILE: .cvsignore --- gen --- NEW FILE: stderr_logger.idl --- #include "logger.idl" #include "console.idl" module wamas { module helpers { component StdErrLogger { provides wamas::io::LoggerItf logger; }; home StdErrLoggerHome manages StdErrLogger {}; }; // /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: ConsolestderrImpl.java --- /** * This file was automatically generated by CCM Tools version 0.9.0 * <http://ccmtools.sourceforge.net> * * CCM_OutputStreamImpl facet implementation. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ package wamas.system; import Components.CCMException; import wamas.io.CCM_OutputStream; import wamas.io.OutputStream; /** * This class implements a component facet's methods. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ public class ConsolestderrImpl implements CCM_OutputStream { /** Reference to the facet's component implementation */ private ConsoleImpl component; public ConsolestderrImpl(ConsoleImpl component) { this.component = component; } /** Business logic implementations */ public void write(char c) throws CCMException { System.err.print(c); } } --- NEW FILE: Makefile --- all: ccmjava -iface -local -app -o gen *.idl ccmjava -assembly -o gen *.assembly *.idl cp ConsolestderrImpl.java gen/wamas/system cp OutputStreamLoggerloggerImpl.java gen/wamas/io cp Main.java gen/wamas cd gen && javac `find . -name '*.java'` cd gen && java wamas.Main clean: rm -rf gen --- NEW FILE: Main.java --- package wamas; import Components.CCMException; import Components.CCMHome; import Components.HomeFinder; import wamas.helpers.*; public class Main { public static void main( String[] args ) { try { deploy(); business_logic(); undeploy(); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } private static void deploy() throws CCMException { wamas.io.OutputStreamLoggerHomeDeployment.deploy("OutputStreamLogger"); wamas.system.ConsoleHomeDeployment.deploy("Console"); wamas.helpers.StdErrLoggerHomeDeployment.deploy("StdErrLogger"); } private static void undeploy() { wamas.io.OutputStreamLoggerHomeDeployment.undeploy("OutputStreamLogger"); wamas.system.ConsoleHomeDeployment.undeploy("Console"); wamas.helpers.StdErrLoggerHomeDeployment.undeploy("StdErrLogger"); } private static void business_logic() throws Exception { CCMHome home = HomeFinder.instance().find_home_by_name("StdErrLogger"); StdErrLogger comp = ((StdErrLoggerHomeAdapter) home).create(); wamas.io.LoggerItf logger = comp.provide_logger(); comp.configuration_complete(); logger.print("Hello World!"); comp.remove(); } } --- 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; }; home OutputStreamLoggerHome manages OutputStreamLogger {}; }; // /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: OutputStreamLoggerloggerImpl.java --- /** * This file was automatically generated by CCM Tools version 0.9.0 * <http://ccmtools.sourceforge.net> * * CCM_LoggerItfImpl facet implementation. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ package wamas.io; import Components.CCMException; import Components.CCMExceptionReason; /** * This class implements a component facet's methods. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ public class OutputStreamLoggerloggerImpl implements CCM_LoggerItf { /** Reference to the facet's component implementation */ private OutputStreamLoggerImpl component; public OutputStreamLoggerloggerImpl(OutputStreamLoggerImpl component) { this.component = component; } /** Business logic implementations */ public void print( String message ) throws CCMException { try { wamas.io.OutputStream os = component.ctx.get_connection_stream(); for (int i = 0; i < message.length(); ++i) { os.write(message.charAt(i)); } os.write('\n'); } catch (Exception e) { throw new CCMException(e.getMessage(), CCMExceptionReason.SYSTEM_ERROR); } } } --- 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-23 13:14:26
|
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/deploy_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv19639/test/JavaAssembly/deploy_logger Log Message: Directory /cvsroot/ccmtools/ccmtools/test/JavaAssembly/deploy_logger added to the repository |
Update of /cvsroot/ccmtools/ccmtools/test/JavaAssembly/sample_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv30462/test/JavaAssembly/sample_logger Modified Files: .cvsignore stderr_logger.idl Makefile Added Files: Main.java ConsolestderrImpl.java OutputStreamLoggerloggerImpl.java Log Message: small real world sample Index: .cvsignore =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/JavaAssembly/sample_logger/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** .cvsignore 19 Feb 2007 12:26:05 -0000 1.1 --- .cvsignore 23 Feb 2007 10:49:29 -0000 1.2 *************** *** 1 **** ! wamas --- 1 ---- ! gen Index: stderr_logger.idl =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/JavaAssembly/sample_logger/stderr_logger.idl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** stderr_logger.idl 19 Feb 2007 12:26:05 -0000 1.1 --- stderr_logger.idl 23 Feb 2007 10:49:29 -0000 1.2 *************** *** 11,14 **** --- 11,16 ---- }; + home StdErrLoggerHome manages StdErrLogger {}; + }; // /module helpers --- NEW FILE: ConsolestderrImpl.java --- /** * This file was automatically generated by CCM Tools version 0.9.0 * <http://ccmtools.sourceforge.net> * * CCM_OutputStreamImpl facet implementation. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ package wamas.system; import Components.CCMException; import wamas.io.CCM_OutputStream; import wamas.io.OutputStream; /** * This class implements a component facet's methods. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ public class ConsolestderrImpl implements CCM_OutputStream { /** Reference to the facet's component implementation */ private ConsoleImpl component; public ConsolestderrImpl(ConsoleImpl component) { this.component = component; } /** Business logic implementations */ public void write(char c) throws CCMException { System.err.print(c); } } Index: Makefile =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/JavaAssembly/sample_logger/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile 19 Feb 2007 12:26:06 -0000 1.1 --- Makefile 23 Feb 2007 10:49:29 -0000 1.2 *************** *** 1,9 **** all: ! ccmjava -iface -local *.idl ! ccmjava -assembly *.assembly *.idl ! javac `find -name '*.java'` ! rm `find -name '*.class'` ! setup: ! rm -rf wamas ! ccmjava -app *.idl --- 1,11 ---- all: ! ccmjava -iface -local -app -o gen *.idl ! ccmjava -assembly -o gen *.assembly *.idl ! cp ConsolestderrImpl.java gen/wamas/system ! cp OutputStreamLoggerloggerImpl.java gen/wamas/io ! cp Main.java gen/wamas ! cd gen && javac `find . -name '*.java'` ! cd gen && java wamas.Main ! clean: ! rm -rf gen --- NEW FILE: Main.java --- package wamas; import Components.CCMHome; import wamas.helpers.*; public class Main { public static void main( String[] args ) { try { CCMHome home = StdErrLoggerHomeDeployment.create(); StdErrLogger comp = ((StdErrLoggerHomeAdapter) home).create(); wamas.io.LoggerItf logger = comp.provide_logger(); comp.configuration_complete(); logger.print("Hello World!"); comp.remove(); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } } --- NEW FILE: OutputStreamLoggerloggerImpl.java --- /** * This file was automatically generated by CCM Tools version 0.9.0 * <http://ccmtools.sourceforge.net> * * CCM_LoggerItfImpl facet implementation. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ package wamas.io; import Components.CCMException; import Components.CCMExceptionReason; /** * This class implements a component facet's methods. * * // TODO: WRITE YOUR DESCRIPTION HERE ! * * @author * @version */ public class OutputStreamLoggerloggerImpl implements CCM_LoggerItf { /** Reference to the facet's component implementation */ private OutputStreamLoggerImpl component; public OutputStreamLoggerloggerImpl(OutputStreamLoggerImpl component) { this.component = component; } /** Business logic implementations */ public void print( String message ) throws CCMException { try { wamas.io.OutputStream os = component.ctx.get_connection_stream(); for (int i = 0; i < message.length(); ++i) { os.write(message.charAt(i)); } os.write('\n'); } catch (Exception e) { throw new CCMException(e.getMessage(), CCMExceptionReason.SYSTEM_ERROR); } } } |
From: Robert L. <rle...@us...> - 2007-02-23 09:59:37
|
Update of /cvsroot/ccmtools/ccmtools/test/AssemblyParser In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv11441/test/AssemblyParser Modified Files: test1.assembly Log Message: bug fix: wrong handling of "\"" Index: test1.assembly =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/AssemblyParser/test1.assembly,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test1.assembly 12 Feb 2007 14:08:31 -0000 1.1 --- test1.assembly 23 Feb 2007 09:59:34 -0000 1.2 *************** *** 11,15 **** connect i3 to comp2.i3; ! constant comp1.a1 = "Hello World"; constant comp1.a1 = 642; --- 11,15 ---- connect i3 to comp2.i3; ! constant comp1.a1 = "Hello \"World\""; constant comp1.a1 = 642; |
From: Robert L. <rle...@us...> - 2007-02-23 09:58:49
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv11074/src/ccmtools/parser/assembly Modified Files: assembly.flex Log Message: bug fix: wrong handling of "\"" Index: assembly.flex =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/assembly.flex,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** assembly.flex 19 Feb 2007 09:38:48 -0000 1.3 --- assembly.flex 23 Feb 2007 09:58:38 -0000 1.4 *************** *** 59,63 **** ScopedName = "::"? {Identifier} "::" {Identifier} ("::" {Identifier})* ! StringCharacter = [^\r\n\"] Number = {DecInteger} | {HexInteger} | {Double} --- 59,63 ---- ScopedName = "::"? {Identifier} "::" {Identifier} ("::" {Identifier})* ! StringCharacter = [^\r\n\"] | \\\" Number = {DecInteger} | {HexInteger} | {Double} *************** *** 121,129 **** <STRING> { "\"" { yybegin(YYINITIAL); return symbol(sym.STRING, string.toString()); } - {StringCharacter}+ { string.append( yytext() ); } - {LineTerminator} { throw new RuntimeException("Unterminated string at end of line"); } } --- 121,129 ---- <STRING> { + {StringCharacter}+ { string.append( yytext() ); } + "\"" { yybegin(YYINITIAL); return symbol(sym.STRING, string.toString()); } {LineTerminator} { throw new RuntimeException("Unterminated string at end of line"); } } |
From: Robert L. <rle...@us...> - 2007-02-22 13:31:16
|
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly/sample_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv1127/test/CppAssembly/sample_logger Modified Files: Makefile Added Files: OutputStreamLogger_logger_impl.cc Console_stderr_impl.cc _check_main.cc Log Message: small real world sample --- NEW FILE: OutputStreamLogger_logger_impl.cc --- /** * This file was automatically generated by CCM Tools version 0.9.0 * <http://ccmtools.sourceforge.net/> * * ::wamas::io::CCM_LoggerItf facet class implementation. * * // TODO: WRITE YOUR DESCRIPTION HERE! * * @author * @version **/ #include <cassert> #include <iostream> #include "OutputStreamLogger_logger_impl.h" using namespace std; namespace wamas { namespace io { OutputStreamLogger_logger_impl::OutputStreamLogger_logger_impl( OutputStreamLogger_impl* component_impl) : component(component_impl) { // OPTIONAL : IMPLEMENT ME HERE ! } OutputStreamLogger_logger_impl::~OutputStreamLogger_logger_impl() { // OPTIONAL : IMPLEMENT ME HERE ! } void OutputStreamLogger_logger_impl::print(const std::string& message) throw(::Components::CCMException) { ::wamas::io::CCM_OutputStream::SmartPtr os = component->ctx->get_connection_stream(); for(std::string::const_iterator it=message.begin(); it!=message.end(); ++it) { os->write(*it); } os->write('\n'); } } // /namespace io } // /namespace wamas --- NEW FILE: Console_stderr_impl.cc --- /** * This file was automatically generated by CCM Tools version 0.9.0 * <http://ccmtools.sourceforge.net/> * * ::wamas::io::CCM_OutputStream facet class implementation. * * // TODO: WRITE YOUR DESCRIPTION HERE! * * @author * @version **/ #include <cassert> #include <iostream> #include "Console_stderr_impl.h" using namespace std; namespace wamas { namespace system { Console_stderr_impl::Console_stderr_impl( Console_impl* component_impl) : component(component_impl) { // OPTIONAL : IMPLEMENT ME HERE ! } Console_stderr_impl::~Console_stderr_impl() { // OPTIONAL : IMPLEMENT ME HERE ! } void Console_stderr_impl::write(const char c) throw(::Components::CCMException) { std::cerr << c; } } // /namespace system } // /namespace wamas --- NEW FILE: _check_main.cc --- #include <iostream> #include <wamas/helpers/StdErrLoggerHome_gen.h> using namespace wamas::helpers; int main() { // objects StdErrLogger::SmartPtr comp; ::wamas::io::LoggerItf::SmartPtr logger; // setup try { StdErrLoggerHome home; comp = home.create(); logger = comp->provide_logger(); comp->configuration_complete(); } catch(...) { std::cerr << "\n SETUP FAILED\n"; return 1; } // business logic try { logger->print("Hello World!"); } catch(...) { std::cerr << "\n B.L. FAILED\n"; return 1; } // tear down try { comp->remove(); } catch(...) { std::cerr << "\n TEAR-DOWN FAILED\n"; return 1; } return 0; } Index: Makefile =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/test/CppAssembly/sample_logger/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile 22 Feb 2007 09:45:43 -0000 1.1 --- Makefile 22 Feb 2007 13:31:04 -0000 1.2 *************** *** 15,20 **** check: local ccmconfix -confix2 -o gen -pname "assembly-sample_logger" -pversion "0.0.1" ! cd gen && confix2.py --bootstrap --configure --make clean: --- 15,24 ---- check: local + cp -p Console_stderr_impl.cc `find gen -name Console_stderr_impl.cc` + cp -p OutputStreamLogger_logger_impl.cc `find gen -name OutputStreamLogger_logger_impl.cc` + mkdir -p gen/bin + cp -p _check_main.cc gen/bin/_check_main.cc ccmconfix -confix2 -o gen -pname "assembly-sample_logger" -pversion "0.0.1" ! cd gen && confix2.py --bootstrap --configure --make --targets=check clean: |
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly/sample_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv13567/test/CppAssembly/sample_logger Added Files: .cvsignore Makefile stderr_logger.assembly console.idl logger.idl io.idl stderr_logger.idl Log Message: small real world sample --- NEW FILE: .cvsignore --- gen --- NEW FILE: stderr_logger.idl --- #include "logger.idl" #include "console.idl" module wamas { module helpers { component StdErrLogger { provides wamas::io::LoggerItf logger; }; home StdErrLoggerHome manages StdErrLogger {}; }; // /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 --- IDL_INCLUDE=-Igen/idl/interface -Igen/idl/component WAMAS_IDL=gen/idl/component/wamas all: local idl: ccmidl -idl3 -o gen/idl *.idl local: idl ccmtools c++local ${IDL_INCLUDE} -a -o gen/interfaces `find gen/idl/interface -name '*.idl'` ccmtools c++local ${IDL_INCLUDE} -a -o gen/io ${WAMAS_IDL}/io/*.idl ccmtools c++local ${IDL_INCLUDE} -a -o gen/system ${WAMAS_IDL}/system/*.idl ccmtools c++local ${IDL_INCLUDE} -a -o gen/helpers ${WAMAS_IDL}/helpers/*.idl ccmtools c++assembly -o gen/helpers stderr_logger.idl stderr_logger.assembly check: local ccmconfix -confix2 -o gen -pname "assembly-sample_logger" -pversion "0.0.1" cd gen && confix2.py --bootstrap --configure --make clean: cd gen && confix2.py --make --targets=clean rm -rf gen --- 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; }; home OutputStreamLoggerHome manages OutputStreamLogger {}; }; // /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-22 09:45:19
|
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly/sample_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv13463/test/CppAssembly/sample_logger Log Message: Directory /cvsroot/ccmtools/ccmtools/test/CppAssembly/sample_logger added to the repository |
From: Robert L. <rle...@us...> - 2007-02-21 16:07:42
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4225/src/ccmtools/generator/java/metamodel Modified Files: OperationDef.java Log Message: Java assemblies Index: OperationDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/OperationDef.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** OperationDef.java 16 Feb 2007 12:34:31 -0000 1.15 --- OperationDef.java 21 Feb 2007 16:07:26 -0000 1.16 *************** *** 214,218 **** if(!(getType() instanceof VoidType)) code.append("return "); ! code.append("target."); code.append(getIdentifier()); code.append("("); --- 214,218 ---- if(!(getType() instanceof VoidType)) code.append("return "); ! code.append("this.target."); code.append(getIdentifier()); code.append("("); |
From: Robert L. <rle...@us...> - 2007-02-21 16:06:03
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv3481/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.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** CppLocalGenerator.java 20 Feb 2007 15:39:03 -0000 1.57 --- CppLocalGenerator.java 21 Feb 2007 16:05:57 -0000 1.58 *************** *** 1003,1007 **** f = new ArrayList(); f.add(implDirectory); ! f.add(getLocalCxxIncludeName(home, Text.MANGLING_SEPARATOR) + "_entry.h"); files.add(f); } --- 1003,1007 ---- f = new ArrayList(); f.add(implDirectory); ! f.add(getHomeEntryHeaderFile(home)); files.add(f); } *************** *** 1088,1091 **** --- 1088,1096 ---- } + protected String getHomeEntryHeaderFile(MHomeDef home) + { + return getLocalCxxIncludeName(home, Text.MANGLING_SEPARATOR) + "_entry.h"; + } + protected static final String IMPL_SUFFIX_H = "_impl.h"; protected static final String IMPL_SUFFIX_CC = "_impl.cc"; Index: CppAssemblyGenerator.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/CppGenerator/CppAssemblyGenerator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CppAssemblyGenerator.java 20 Feb 2007 15:39:03 -0000 1.2 --- CppAssemblyGenerator.java 21 Feb 2007 16:05:57 -0000 1.3 *************** *** 18,30 **** --- 18,40 ---- import java.util.logging.Logger; import ccmtools.CcmtoolsException; + import ccmtools.generator.java.metamodel.ProvidesDef; import ccmtools.parser.assembly.metamodel.Assembly; + import ccmtools.parser.assembly.metamodel.AssemblyElement; + import ccmtools.parser.assembly.metamodel.Attribute; import ccmtools.parser.assembly.metamodel.Component; + import ccmtools.parser.assembly.metamodel.Connection; + import ccmtools.parser.assembly.metamodel.Constant; import ccmtools.parser.assembly.metamodel.Model; + import ccmtools.parser.assembly.metamodel.Port; import ccmtools.parser.idl.metamodel.CcmModelHelper; import ccmtools.parser.idl.metamodel.BaseIDL.MContained; + import ccmtools.parser.idl.metamodel.BaseIDL.MInterfaceDef; + import ccmtools.parser.idl.metamodel.BaseIDL.MOperationDef; + import ccmtools.parser.idl.metamodel.BaseIDL.MPrimitiveKind; 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; + import ccmtools.utils.Text; /** *************** *** 127,130 **** --- 137,144 ---- protected static final String TAB = " "; + protected static final String TAB2 = TAB + TAB; + + protected static final String TAB3 = TAB2 + TAB; + protected String data_MComponentDef( String data_type, String data_value ) { *************** *** 137,148 **** 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); } --- 151,170 ---- return variable_AssemblyInnerComponentVariableCreation(); } if (data_type.equals("AssemblyInnerComponentInclude")) { return variable_AssemblyInnerComponentInclude(); } + if (data_type.equals("AssemblyInnerHomeInclude")) + { + return variable_AssemblyInnerHomeInclude(); + } + if (data_type.equals("AssemblyCcmActivate")) + { + return variable_AssemblyCcmActivate(); + } + if (data_type.equals("AssemblyCcmRemove")) + { + return variable_AssemblyCcmRemove(); + } return super.data_MComponentDef(data_type, data_value); } *************** *** 156,160 **** 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()) { --- 178,182 ---- MComponentDef comp_def = map.get(key); String cpp_type = getLocalCxxName(comp_def, "::"); ! code.append(TAB + cpp_type + "::SmartPtr " + key + "_;\n"); for (Object o : comp_def.getFacets()) { *************** *** 172,198 **** 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>(); --- 194,247 ---- protected String variable_AssemblyInnerComponentVariableCreation() { ! StringBuffer code_homes = new StringBuffer(); ! StringBuffer code_creation = new StringBuffer(); ! HashMap<String, String> home_map = new HashMap<String, String>(); ! int counter = 0; Map<String, MComponentDef> map = getAssemblyLocalComponents(); for (String key : map.keySet()) { MComponentDef comp_def = map.get(key); ! MHomeDef home = getHome(comp_def); ! String home_type = getLocalCxxName(home, "::"); ! String home_var = home_map.get(home_type); ! if (home_var == null) ! { ! home_var = "home" + counter; ! ++counter; ! home_map.put(home_type, home_var); ! code_homes.append(TAB); ! code_homes.append(home_type); ! code_homes.append(" "); ! code_homes.append(home_var); ! code_homes.append(";\n"); ! } ! code_creation.append(TAB); ! code_creation.append(key); ! code_creation.append("_ = "); ! code_creation.append(home_var); ! code_creation.append(".create();\n"); } ! return code_homes.toString() + code_creation.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 + "_gen.h>\n"); ! include_set.add(inc_name); ! } } return code.toString(); } ! protected String variable_AssemblyInnerHomeInclude() { HashSet<String> include_set = new HashSet<String>(); *************** *** 202,209 **** { 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); } --- 251,259 ---- { 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); } *************** *** 212,215 **** --- 262,379 ---- } + protected String variable_AssemblyCcmActivate() + { + if (currentAssembly == null) + return ""; + MComponentDef comp_def = (MComponentDef) currentNode; + StringBuilder activation_code = new StringBuilder(); + HashSet<String> outer_facets = new HashSet<String>(); + for (AssemblyElement e : currentAssembly.getElements()) + { + if (e instanceof Connection) + { + Connection c = (Connection) e; + StringBuilder code = new StringBuilder(); + String code_tail; + Port target = c.getReceptacle(); + String target_name = target.getConnector(); + if (target.getComponent() == null) + { + // connect to an outer facet + code.append(TAB2 + "if(" + target_name + "_) {\n"); + String real_type = comp_def.getIdentifier() + "_" + target_name + "_impl"; + code.append(TAB3 + real_type + "* facet = dynamic_cast<" + real_type + "*>(" + + target_name + "_);\n"); + code.append(TAB3 + "facet->target = "); + code_tail = ";\n" + TAB2 + "}\n"; + outer_facets.add(target_name); + } + else + { + // connect to the receptacle of an inner component + code.append(TAB2); + code.append(target.getComponent()); + code.append("_->connect_"); + code.append(target_name); + code.append("("); + code_tail = ");\n"; + } + Port source = c.getFacet(); + if (source.getComponent() == null) + { + // connect from an outer receptacle + code.append("ctx->get_connection_"); + } + else + { + // connect from the facet of an inner component + code.append(source.getComponent()); + code.append("_->provide_"); + } + code.append(source.getConnector()); + code.append("()"); + code.append(code_tail); + activation_code.append(code); + } + else if (e instanceof Attribute) + { + Attribute a = (Attribute) e; + Port target = a.getTarget(); + String source = a.getSource(); + StringBuilder code = new StringBuilder(); + code.append(TAB2); + code.append(target.getComponent()); + code.append("_->"); + code.append(target.getConnector()); + code.append("(this->"); + code.append(source); + code.append("_);\n"); + activation_code.append(code); + } + else if (e instanceof Constant) + { + Constant c = (Constant) e; + Port target = c.getTarget(); + String value = c.getValue().toString(); + StringBuilder code = new StringBuilder(); + code.append(TAB2); + code.append(target.getComponent()); + code.append("_->"); + code.append(target.getConnector()); + code.append("("); + code.append(value); + code.append(");\n"); + activation_code.append(code); + } + } + for (Object o : comp_def.getFacets()) + { + MProvidesDef p = (MProvidesDef) o; + String name = p.getIdentifier(); + if (!outer_facets.contains(name)) + { + throw new RuntimeException("facet " + name + + " is not connected to an inner component"); + } + } + Map<String, MComponentDef> map = getAssemblyLocalComponents(); + for (String key : map.keySet()) + { + activation_code.append(TAB2 + key + "_->configuration_complete();\n"); + } + return activation_code.toString(); + } + + protected String variable_AssemblyCcmRemove() + { + StringBuilder code = new StringBuilder(); + Map<String, MComponentDef> map = getAssemblyLocalComponents(); + for (String key : map.keySet()) + { + code.append(TAB2 + key + "_->remove();\n"); + } + return code.toString(); + } + private Map<String, Map<String, MComponentDef>> assembly_local_components_ = new HashMap<String, Map<String, MComponentDef>>(); *************** *** 258,260 **** --- 422,475 ---- } } + + protected static MHomeDef getHome( MComponentDef comp ) + { + MHomeDef result = null; + for (Object o : comp.getHomes()) + { + if (result == null) + result = (MHomeDef) o; + } + if (result == null) + throw new RuntimeException("component \"" + comp.getIdentifier() + "\" has no home"); + return result; + } + + protected String data_MProvidesDef( String dataType, String dataValue ) + { + if (dataType.equals("AssemblyTargetVariable")) + { + return variable_AssemblyTargetVariable(); + } + return super.data_MProvidesDef(dataType, dataValue); + } + + protected String variable_AssemblyTargetVariable() + { + MProvidesDef provides = (MProvidesDef) currentNode; + MInterfaceDef iface = provides.getProvides(); + String iface_type = getLocalCxxName(iface, Text.SCOPE_SEPARATOR); + return TAB + iface_type + "::SmartPtr target;\n"; + } + + protected String generateOperationImpl( MProvidesDef provides, MOperationDef op ) + { + StringBuilder code = new StringBuilder(); + String return_type = getLanguageType(op); + code.append(return_type).append("\n"); + code.append(provides.getComponent().getIdentifier()).append("_").append( + provides.getIdentifier()); + code.append("_impl::").append(op.getIdentifier()).append("("); + code.append(getOperationParams(op)).append(")\n"); + code.append(" ").append(getOperationExcepts(op)).append("\n"); + code.append("{\n"); + code.append(TAB); + if (!return_type.equals("void")) + code.append("return "); + code.append("this->target->").append(op.getIdentifier()).append("("); + code.append(getOperationParamNames(op)); + code.append(");\n"); + code.append("}\n\n"); + return code.toString(); + } } |