Path: | docs/examples/cpp/value_incapsulator/embedded_cfg |
Last Update: | Mon Jun 04 14:34:34 +0400 2007 |
Кодогенерирующий скрипт включен непосредственно в 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' }