クラス toppers::itron::cfg_contents

コンフィギュレーションファイルのコンテンツを格納するためのクラス [詳細]

#include "toppers/itron/cfg_contents.hpp"

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

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

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

Public 型

typedef std::vector< boost::shared_ptr<
cfg_group > > 
group_container
typedef const boost::shared_ptr<
cfg_contents >(* 
builder_type )(text::const_iterator &, text::const_iterator, bool, codeset_t)

Public メソッド

 cfg_contents (bool ucn=false, codeset_t codeset=ascii)
 コンストラクタ
 cfg_contents (const std::string &name, bool ucn=false, codeset_t codeset=ascii)
 コンストラクタ
virtual ~cfg_contents ()
 デストラクタ
void swap (cfg_contents &other) throw ()
 コンフィギュレーションデータの交換
group_containergroups ()
 グループ列への参照の取得
const group_containergroups () const
 グループ列への参照の取得
void groups (const group_container &container)
 グループ列の設定
void name (const std::string &str)
 コンテンツ名の設定
const std::string & name () const
 コンテンツ名の取得
const boost::shared_ptr< std::vector<
boost::shared_ptr< cfg_contents > > > 
classify () const
 コンテンツ内容の分類
bool parse (text::const_iterator &next, text::const_iterator last)
 コンフィギュレーションファイルの構文解析

Protected メソッド

virtual const boost::shared_ptr<
std::vector< boost::shared_ptr<
cfg_contents > > > 
do_classify (bool ucn, codeset_t codeset) const
 cfg_contents::classify 関数の実体
virtual bool do_parse (text::const_iterator &next, text::const_iterator last, bool ucn, codeset_t codeset)
 テキストデータの解析

説明

コンフィギュレーションファイルのコンテンツを格納するためのクラス

class_diagram__cfg_contents.png

cfg_contents.hpp65 行で定義されています。


コンストラクタとデストラクタ

toppers::itron::cfg_contents::cfg_contents bool  ucn = false,
codeset_t  codeset = ascii
[inline, explicit]
 

コンストラクタ

引数:
ucn 国際文字名を有効にする場合は true を指定
codeset 文字コード

toppers::itron::fdmp::cfg_contentsで再定義されています。

cfg_contents.hpp76 行で定義されています。

参照元 do_classify().

00076 : ucn_( ucn ), codeset_( codeset ) {}

toppers::itron::cfg_contents::cfg_contents const std::string &  name,
bool  ucn = false,
codeset_t  codeset = ascii
[inline, explicit]
 

コンストラクタ

引数:
name コンテンツ名
ucn 国際文字名を有効にする場合は true を指定
codeset 文字コード

toppers::itron::fdmp::cfg_contentsで再定義されています。

cfg_contents.hpp83 行で定義されています。

00083 : name_( name ), ucn_( ucn ), codeset_( codeset ) {}


関数

const boost::shared_ptr<std::vector<boost::shared_ptr<cfg_contents> > > toppers::itron::cfg_contents::classify  )  const [inline]
 

コンテンツ内容の分類

戻り値:
分類後のコンテンツ列へのスマートポインタを返す
この関数は、コンテンツ内のグループをカーネル種別に応じた規則にしたがって分類し、 その分類された単位を新たなコンテンツとして配列を生成します。
例えば、マルチプロセッサ向けカーネルの場合、ローカルクラスに対応した各グループ を新たなコンテンツとし、ベクタに格納します。

classify 関数が生成するコンテンツは、最終的には一組の kernel_id.h と kernel_cfg.c を生成するための情報となります。
したがって、メモリ保護拡張のドメインのように、複数のグループを持つコンテンツで あっても、最終的に一組の kernel_id.h と kerenl_cfg.c しか生成する必要がない場合は、 classify 関数で生成されるベクタの要素も1つだけになります。

cfg_contents.hpp130 行で定義されています。

参照先 do_classify().

00130 { return do_classify( ucn_, codeset_ ); }

関数の呼び出しグラフ:

const boost::shared_ptr< std::vector< boost::shared_ptr< cfg_contents > > > toppers::itron::cfg_contents::do_classify bool  ucn,
codeset_t  codeset
const [protected, virtual]
 

cfg_contents::classify 関数の実体

引数:
ucn 国際文字名を有効にする場合は true を指定
codeset コンフィギュレーションファイルの文字コードを指定

toppers::itron::fdmp::cfg_contentsで再定義されています。

cfg_contents.cpp84 行で定義されています。

参照先 toppers::itron::kernel_object::assign_id()cfg_contents()groups().

参照元 classify().

00085     {
00086       typedef std::vector<boost::shared_ptr<cfg_contents> > vector_t;
00087       boost::shared_ptr<vector_t> v( new vector_t );
00088 
00089       if ( !kernel_object::assign_id( groups().front()->objects().begin(), groups().front()->objects().end() ) )
00090       {
00091         v.reset();
00092         return v;
00093       }
00094 
00095       v->push_back( boost::shared_ptr<cfg_contents>( new cfg_contents( *this ) ) );
00096       return v;
00097     }

関数の呼び出しグラフ:

bool toppers::itron::cfg_contents::do_parse text::const_iterator &  next,
text::const_iterator  last,
bool  ucn,
codeset_t  codeset
[protected, virtual]
 

テキストデータの解析

引数:
next テキストデータの先頭位置および解析終了位置の格納先
last テキストデータに終端位置+1
ucn 国際文字名に対応する場合は true を指定
codeset 文字集合( ascii, shift_jis, euc_jp, utf8 )
戻り値:
解析に成功した場合は true を返す

toppers::itron::fdmp::cfg_contentsで再定義されています。

cfg_contents.cpp107 行で定義されています。

参照先 _toppers::error()toppers::get_text_line().

参照元 parse().

00108     {
00109       text::const_iterator iter( next );
00110       if ( iter != last )
00111       {
00112         boost::shared_ptr<cfg_group> g( new cfg_group( "" ) );
00113         if ( !g->parse( iter, last, ucn, codeset ) )
00114         {
00115           return false;
00116         }
00117         if ( iter != last )
00118         {
00119           error( get_text_line( iter ), _( "syntax error" ) );
00120         }
00121         groups_.push_back( g );
00122       }
00123       next = iter;
00124       return true;
00125     }

関数の呼び出しグラフ:

void toppers::itron::cfg_contents::groups const group_container container  )  [inline]
 

グループ列の設定

引数:
container 設定するグループ列

cfg_contents.hpp104 行で定義されています。

00104 { groups_ = container; }

const group_container& toppers::itron::cfg_contents::groups  )  const [inline]
 

グループ列への参照の取得

戻り値:
グループ列への参照を返す

cfg_contents.hpp99 行で定義されています。

00099 { return groups_; }

group_container& toppers::itron::cfg_contents::groups  )  [inline]
 

グループ列への参照の取得

戻り値:
グループ列への参照を返す

cfg_contents.hpp94 行で定義されています。

参照元 toppers::itron::fdmp::cfg_contents::do_classify()do_classify()toppers::itron::fdmp::cfg_contents::do_parse().

00094 { return groups_; }

const std::string& toppers::itron::cfg_contents::name  )  const [inline]
 

コンテンツ名の取得

戻り値:
コンテンツ名を表す文字列への参照を返す

cfg_contents.hpp114 行で定義されています。

00114 { return name_; }

void toppers::itron::cfg_contents::name const std::string &  str  )  [inline]
 

コンテンツ名の設定

引数:
str コンテンツ名として設定する文字列

cfg_contents.hpp109 行で定義されています。

00109 { name_ = str; }

bool toppers::itron::cfg_contents::parse text::const_iterator &  next,
text::const_iterator  last
 

コンフィギュレーションファイルの構文解析

引数:
next 解析対象の先頭位置
last 解析対象の終端位置+1

cfg_contents.cpp56 行で定義されています。

参照先 do_parse().

00057     {
00058       text::const_iterator iter( next );
00059       if ( !do_parse( iter, last, ucn_, codeset_ ) )
00060       {
00061         return false;
00062       }
00063       next = iter;
00064       return true;
00065     }

関数の呼び出しグラフ:

void toppers::itron::cfg_contents::swap cfg_contents other  )  throw ()
 

コンフィギュレーションデータの交換

引数:
other 交換対象のコンフィギュレーションデータ

cfg_contents.cpp71 行で定義されています。

00072     {
00073       groups_.swap( other.groups_ );
00074       name_.swap( other.name_ );
00075       std::swap( ucn_, other.ucn_ );
00076       std::swap( codeset_, other.codeset_ );
00077     }


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