クラス Onikiri::String

#include <String.h>

Onikiri::Stringに対する継承グラフ

Inheritance graph
[凡例]
Onikiri::Stringのコラボレーション図

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

Public メソッド

void find_and_replace (const String &from, const String &to)
Stringformat (const char *fmt,...)
Stringformat_arg (const char *fmt, va_list &arg)
 operator const char * () const
String operator+ (const t_string &rhs)
template<class T>
String operator+ (const T &rhs)
Stringoperator+= (const char rhs)
template<class T>
Stringoperator+= (const T &rhs)
Stringoperator+= (const t_string &rhs)
Stringoperator= (const t_string &rhs)
template<class T>
Stringoperator= (const T &rhs)
std::vector< Stringsplit (const char *delimiter, const char *delimiterKeep=NULL) const
 String (const char *str)
 String (const t_string &str, size_type pos=0, size_type n=npos)
 String ()
template<class T>
to ()

説明

String.h46 行で定義されています。


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

String::String (  ) 

String.cpp41 行で定義されています。

00042 {
00043 }

String::String ( const t_string &  str,
size_type  pos = 0,
size_type  n = npos 
)

String.cpp45 行で定義されています。

00045                                                               : 
00046     t_string(str, pos, n)
00047 {
00048 };

String::String ( const char *  str  ) 

String.cpp50 行で定義されています。

00050                               : 
00051     t_string(str)
00052 {
00053 };


関数

void Onikiri::String::find_and_replace ( const String from,
const String to 
) [inline]

String.h105 行で定義されています。

参照先 to().

00106         {
00107             while( true ){
00108                 std::string::size_type i = find( from ); 
00109 
00110                 if( i == std::string::npos ){
00111                     break;
00112                 }
00113 
00114                 std::string::replace( i, from.length(), to );
00115             }
00116         }

関数の呼び出しグラフ:

String & String::format ( const char *  fmt,
  ... 
)

String.cpp83 行で定義されています。

参照先 format_arg().

参照元 Onikiri::Environment::Environment()Onikiri::Cache::Initialize()Onikiri::SimulationSystem::Run()Onikiri::ClockedResourceBase::SetParent()Onikiri::ParamXMLPath::ToString().

00084 {
00085     va_list arg;
00086     va_start(arg, fmt);
00087     format_arg(fmt, arg);
00088     va_end(arg);
00089 
00090     return *this;
00091 }

関数の呼び出しグラフ:

Here is the caller graph for this function:

String & String::format_arg ( const char *  fmt,
va_list &  arg 
)

String.cpp55 行で定義されています。

参照先 va_copy.

参照元 format().

00056 {
00057     
00058     for(int size = 128;;size *= 2){
00059         char* buf = new char[size];
00060         
00061         va_list work_arg;
00062         va_copy(work_arg, arg);
00063 
00064         int writeSize = ::vsnprintf(buf, size, fmt, work_arg);
00065         bool success = (writeSize < size) && (writeSize != -1);
00066 
00067         va_end(work_arg);
00068 
00069         if(success)
00070             this->assign(buf);
00071 
00072         delete[] buf;
00073 
00074         if(success)
00075             break;
00076     }
00077 
00078     
00079     return *this;
00080 }

Here is the caller graph for this function:

Onikiri::String::operator const char * (  )  const [inline]

String.h59 行で定義されています。

00059 {   return c_str(); };

String Onikiri::String::operator+ ( const t_string &  rhs  )  [inline]

String.h80 行で定義されています。

00081         {
00082             String tmp(*this);
00083             tmp.append(rhs);
00084             return tmp;
00085         }

template<class T>
String Onikiri::String::operator+ ( const T &  rhs  )  [inline]

String.h67 行で定義されています。

00068         {
00069             String tmp(*this);
00070             tmp.append(rhs);
00071             return tmp;
00072         }

String& Onikiri::String::operator+= ( const char  rhs  )  [inline]

String.h99 行で定義されています。

00100         {
00101             append(&rhs, 1);
00102             return *this;
00103         }

template<class T>
String& Onikiri::String::operator+= ( const T &  rhs  )  [inline]

String.h93 行で定義されています。

00094         {
00095             append(rhs);
00096             return *this;
00097         }

String& Onikiri::String::operator+= ( const t_string &  rhs  )  [inline]

String.h87 行で定義されています。

00088         {
00089             append(rhs);
00090             return *this;
00091         }

String& Onikiri::String::operator= ( const t_string &  rhs  )  [inline]

String.h74 行で定義されています。

00075         {
00076             assign(rhs);
00077             return *this;
00078         }

template<class T>
String& Onikiri::String::operator= ( const T &  rhs  )  [inline]

String.h61 行で定義されています。

00062         {
00063             assign(rhs);
00064             return *this;
00065         }

std::vector< String > String::split ( const char *  delimiter,
const char *  delimiterKeep = NULL 
) const

String.cpp98 行で定義されています。

参照元 Onikiri::ParamDB::AddParameter()Onikiri::ParamDB::DumpResultXML()Onikiri::EmulatorUtility::Linux64Loader::InitArgs()Onikiri::ParamXMLPath::Parse().

00101 {
00102     using namespace boost;
00103     typedef tokenizer< char_separator<char> > tokenizer;
00104     char_separator<char> sep( delimiter, delimiterKeep );
00105     tokenizer tok(*this, sep);
00106 
00107     std::vector<String> ret;
00108     for(tokenizer::iterator i = tok.begin(); i != tok.end(); ++i){
00109         ret.push_back( *i );
00110     }
00111     return ret;
00112 }

Here is the caller graph for this function:

template<class T>
T Onikiri::String::to (  )  [inline]

String.h125 行で定義されています。

参照元 find_and_replace().

00126         {
00127             return boost::lexical_cast<T>(*this);
00128         }

Here is the caller graph for this function:


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 15:22:11 2013に生成されました。  doxygen 1.4.7