From: Robert L. <rle...@us...> - 2007-02-28 10:58:55
|
Update of /cvsroot/ccmtools/ccmtools/test/CppAssembly/deploy_logger In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv1956/test/CppAssembly/deploy_logger Added Files: stderr_logger.assembly io.idl _check_main.cc OutputStreamLogger_logger_impl.cc stderr_logger.idl Makefile .cvsignore logger.idl console.idl Console_stderr_impl.cc Log Message: C++ assemblies --- 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 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: cd gen && confix2.py --make --targets=clean rm -rf gen --- NEW FILE: _check_main.cc --- #include <iostream> #include <wamas/helpers/StdErrLoggerHome_gen.h> #include <wamas/system/ConsoleHome_gen.h> using namespace wamas::helpers; int main() { // objects StdErrLogger::SmartPtr comp; ::wamas::io::LoggerItf::SmartPtr logger; // setup try { { std::cout << "# register Console" << std::endl; ::Components::CCMHome::SmartPtr sp(new ::wamas::system::ConsoleHome); ::Components::HomeFinder::Instance()->register_home(sp, "Console"); } { std::cout << "# creating home" << std::endl; StdErrLoggerHome home; std::cout << "# creating component" << std::endl; comp = home.create(); } std::cout << "# provide logger" << std::endl; logger = comp->provide_logger(); std::cout << "# configuration complete" << std::endl; comp->configuration_complete(); } catch(...) { std::cerr << "\n SETUP FAILED\n"; return 1; } // business logic try { std::cout << "# business logic" << std::endl; logger->print("Hello World!"); } catch(...) { std::cerr << "\n B.L. FAILED\n"; return 1; } // tear down try { std::cout << "# tear down" << std::endl; comp->remove(); } catch(...) { std::cerr << "\n TEAR-DOWN FAILED\n"; return 1; } return 0; } --- 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: 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::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: stderr_logger.assembly --- module wamas { module helpers { assembly implements StdErrLogger { component wamas::system::Console alias "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 |