embedded_cfg

Path: docs/examples/cpp/value_incapsulator/embedded_cfg
Last Update: Mon Jun 04 14:34:34 +0400 2007

[Embedded][RuCodeGen::ValueIncapsulator] cfg

Кодогенерирующий скрипт

Кодогенерирующий скрипт включен непосредственно в C++ файл:

        #include <string>

        std::string
        default_self_mbox() { return "default"; }

        const unsigned int default_low_watermark = 30;

        #if 0 /* RuCodeGen::Embedded::begin */
        cpp_value_incapsulator :cfg_t do |c|
                c.decl_file :script_relative => "cfg.decl.hpp"
                c.impl_file :script_relative => "cfg.impl.cpp"

                c.attr_suffix "_"

                c.attr :listening_mbox, "std::string"
                c.attr :self_mbox, "std::string", :default => :"default_self_mbox()"
                c.attr :interception_priority, "int", :default => 2
                c.attr :low_watermark, "unsigned int", :default => :default_low_watermark
                c.attr :high_watermark, "unsigned int"
                c.attr :cprov_high_watermark, "unsigned int"
                c.attr :max_life_time, "unsigned int", :default => 60
                c.attr :check_life_time_period, "unsigned int", :default => 5

        end
        #endif /* RuCodeGen::Embedded::end */

        #include "cfg.decl.hpp"
        #include "cfg.impl.cpp"

        int
        main()
                {
                        cfg_t cfg;
                }

Для инициирования кодогенерации можно выполнить следующую команду:

        ruby -e"require 'rubygems'; require_gem 'RuCodeGen'; process_embedded_rucodegen('test.cpp',:build)"

Либо воспользоваться поддержкой RuCodeGen в Mxx_ru:

        require 'mxx_ru/cpp'
        require 'mxx_ru/cpp/rucodegen'

        Mxx_ru::Cpp::exe_target {
                target 'test'

                r = generator( Mxx_ru::Cpp::RuCodeGen.new( self ) )
                r.add_embedded 'test.cpp'

                cpp_source 'test.cpp'
        }

[Validate]

Hosted by uCoz