構造体 toppers::itron::include_policy

INCLUDE静的APIのためのポリシークラス [詳細]

#include "toppers/itron/include.hpp"

toppers::itron::include_policyに対する継承グラフ

Inheritance graph
[凡例]
toppers::itron::include_policyのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public 型

enum  { use_id_ = 0 }
 specified_object<Plociy> クラスが要求する Policy::use_id_ 定数 [詳細]

Static Public メソッド

static bool generate_kernel_cfg (const kernel_cfg &cfg, std::ostream &ostr)
 specified_object<Plociy> クラスが要求する Policy::generate_kernel_cfg 関数
static bool generate_kernel_id (const kernel_id &, std::ostream &)
 kernel_id.h への出力は行わない
static bool verify (const static_api &api, kernel_object &obj)
 specified_object<Plociy> クラスが要求する Policy::verify 関数

Static Public 変数

static const char name_ [] = "include"
static const char *const apis_ [] = { "INCLUDE", 0 }
static const char *const params_ [] = { "path", 0, }

説明

INCLUDE静的APIのためのポリシークラス

参照:
specified_object, include

include.hpp62 行で定義されています。


列挙型

anonymous enum
 

specified_object<Plociy> クラスが要求する Policy::use_id_ 定数

kernel_object_policy_base クラスでは true に定義しています。 ID番号ではなく、オブジェクト番号を使用する場合は、kernel_object_policy_base から継承したクラスで同名のメンバを再定義してください。

toppers::itron::kernel_object_policy_baseを再定義しています。

include.hpp67 行で定義されています。

00067 { use_id_ = 0 };


関数

bool toppers::itron::include_policy::generate_kernel_cfg const kernel_cfg cfg,
std::ostream &  ostr
[static]
 

specified_object<Plociy> クラスが要求する Policy::generate_kernel_cfg 関数

引数:
cfg kernel_cfg.c 生成情報
ostr 出力ストリーム
戻り値:
生成に成功すれば true を返す

include.cpp54 行で定義されています。

参照先 toppers::kernel_cfg::get_inib_array().

00055     {
00056       using boost::format;
00057       typedef kernel_cfg::inib_array::const_iterator const_iterator;
00058 
00059       const kernel_cfg::inib_array* pinibs = cfg.get_inib_array( "include" );
00060       if ( pinibs == 0 )
00061       {
00062         static const kernel_cfg::inib_array dummy;
00063         pinibs = &dummy;
00064       }
00065 
00066       ostr << "\t/* User specified include files */\n\n";
00067       for ( const_iterator iter( pinibs->begin() ), last( pinibs->end() ); iter != last; ++iter )
00068       {
00069         std::string path( ( *iter )->get( "path" ) );
00070         ostr << format( "#include %1%\n" ) % path;
00071       }
00072       ostr << '\n';
00073 
00074       return true;
00075     }

関数の呼び出しグラフ:

bool toppers::itron::include_policy::generate_kernel_id const kernel_id ,
std::ostream & 
[static]
 

kernel_id.h への出力は行わない

戻り値:
常に true を返す

include.cpp81 行で定義されています。

00082     {
00083       return true;
00084     }

bool toppers::itron::include_policy::verify const static_api api,
kernel_object obj
[static]
 

specified_object<Plociy> クラスが要求する Policy::verify 関数

引数:
api 解析対象の静的API情報
obj カーネルオブジェクト情報
戻り値:
判定結果が正常であれば true を返す。

toppers::itron::kernel_object_policy_baseを再定義しています。

include.cpp92 行で定義されています。

参照先 _toppers::error()toppers::itron::kernel_object::get()toppers::itron::static_api::line().

00093     {
00094       std::string path( obj.get( "path" ) );
00095       std::string::size_type size = path.size();
00096 
00097       if ( path[0] != '\"' || path[size-1] != '\"' )
00098       {
00099         static_api::line_type line( api.line() );
00100         error( line.file_.native_file_string(), line.line_, _( "`INCLUDE\' expects string literal" ) );
00101         return false;
00102       }
00103       path = path.substr( 1, size-2 );  // 両端の '"' を除去
00104       
00105       // \" を " に変換
00106       for ( std::string::size_type pos = path.find( "\\\"" ); pos != std::string::npos; pos = path.find( "\\\"", pos+1 ) )
00107       {
00108         path.replace( pos, 2, "\"" );
00109       }
00110 
00111       obj.set( "path", path );
00112       return true;
00113     }

関数の呼び出しグラフ:


この構造体の説明は次のファイルから生成されました:
Copyright © 2006 by TAKAGI Nobuhisa.
このページは Wed Apr 12 16:32:05 2006 に Doxygen によって生成されました。