OpenRTM-aist  1.2.1
クラス | 型定義 | 関数
coil 名前空間

Common Object Interface Layer. [詳解]

クラス

class  AdjustedClock
 
class  Allocator
 Allocator クラス [詳解]
 
class  Async
 Async クラス [詳解]
 
class  Async_ref_t
 Async_ref_t テンプレートクラス [詳解]
 
class  Async_t
 Async_t テンプレートクラス [詳解]
 
class  ClockManager
 
class  Condition
 Condition テンプレートクラス [詳解]
 
class  DynamicLib
 DynamicLib クラス [詳解]
 
class  Factory
 Factory テンプレートクラス [詳解]
 
class  GetOpt
 GetOpt クラス [詳解]
 
class  GlobalFactory
 GlobalFactory テンプレートクラス [詳解]
 
class  Guard
 Guard テンプレートクラス [詳解]
 
class  IClock
 
class  log_stream
 log_stream テンプレートクラス [詳解]
 
class  log_streambuf
 log_streambuf テンプレートクラス [詳解]
 
class  LogicalClock
 
class  Mutex
 Mutex クラス [詳解]
 
class  NonCopyable
 コピー禁止ミックスイン [詳解]
 
class  NonCopyableCRTP
 コピー禁止ミックスイン(CRTP版) [詳解]
 
class  PeriodicTask
 周期タスクスレッド実行クラス [詳解]
 
class  PeriodicTaskBase
 PeriodicTaskBase クラス [詳解]
 
class  Properties
 プロパティセットを表現するクラス [詳解]
 
class  SharedMemory
 SharedMemory クラス [詳解]
 
class  SignalAction
 SignalAction クラス [詳解]
 
class  Singleton
 Singleton テンプレートクラス [詳解]
 
class  SystemClock
 
class  Task
 Task クラス [詳解]
 
class  TaskFunc
 TaskFunc テンプレートクラス [詳解]
 
class  TaskFuncBase
 TaskFuncBase クラス [詳解]
 
class  TimeMeasure
 TimeMeasure クラス [詳解]
 
class  Timer
 Timerクラス [詳解]
 
class  TimeValue
 TimeValue クラス [詳解]
 

型定義

typedef std::vector< unsigned int > CpuMask
 
typedef log_streambuf< char > LogStreamBuffer
 
typedef log_stream< char > LogStream
 
typedef ::utsname utsname
 システム情報取得 [詳解]
 
typedef ::pid_t pid_t
 呼び出し元プロセスのプロセスID取得 [詳解]
 
typedef void(* SignalHandler) (int)
 
typedef std::vector< std::string > vstring
 
typedef std::map< std::string, std::string > mapstring
 

関数

bool getProcCpuAffinity (CpuMask &cpu_mask)
 プロセスのCPU affinityを取得する cpu_mask 現在設定されている affinity が CPU IDの std::vector<unsigned int> で返される。 [詳解]
 
bool setProcCpuAffinity (const CpuMask cpu_mask)
 プロセスのCPU affinityを設定する cpu_mask 設定する CPU affinity を CPU ID の std::vector<unsigned int> リストで与える [詳解]
 
bool setProcCpuAffinity (std::string cpu_mask)
 プロセスのCPU affinityを文字列で設定する cpu_mask 設定する CPU affinity を CPU ID のカンマ区切り文字 列のリストで与える [詳解]
 
bool getThreadCpuAffinity (CpuMask &cpu_mask)
 スレッドのCPU affinityを取得する cpu_mask 現在設定されている affinity が CPU IDの std::vector<unsigned int> で返される。 [詳解]
 
bool setThreadCpuAffinity (const CpuMask cpu_mask)
 スレッドのCPU affinityを設定する cpu_mask 設定する CPU affinity を CPU ID の std::vector<unsigned int> リストで与える [詳解]
 
bool setThreadCpuAffinity (std::string mask)
 スレッドのCPU affinityを文字列で設定する cpu_mask 設定する CPU affinity を CPU ID のカンマ区切り文字 列のリストで与える [詳解]
 
template<typename Object , typename Func >
Async_t< Object, Func > * AsyncInvoker (Object *obj, Func func, bool auto_delete=false)
 非同期メンバー関数呼び出しヘルパー関数 [詳解]
 
template<typename Object , typename Func >
Async_ref_t< Object, Func > * AsyncInvoker (Object *obj, Func *func, bool auto_delete=false)
 非同期メンバー関数呼び出しヘルパー関数 [詳解]
 
unsigned short crc16 (const char *str, size_t len)
 
unsigned long crc32 (const char *str, size_t len)
 CRC-32 計算関数 [詳解]
 
template<class AbstractClass , class ConcreteClass >
AbstractClass * Creator ()
 Creator テンプレート [詳解]
 
template<class AbstractClass , class ConcreteClass >
void Destructor (AbstractClass *&obj)
 Destructor テンプレート [詳解]
 
std::string dirname (char *path)
 ファイルパスよりディレクトリ部分を取得する [詳解]
 
std::string basename (const char *path)
 ファイルパスよりファイル名部分を取得する [詳解]
 
coil::vstring filelist (const char *path, const char *glob_str="")
 ファイルリストを取得する [詳解]
 
void findFile (std::string dir, std::string filename, coil::vstring &filelist)
 指定ファイル名を指定ディレクトリから探査する [詳解]
 
void getFileList (std::string dir, std::string ext, coil::vstring &filelist)
 ファイル一覧を指定ディレクトリから探査する [詳解]
 
int uname (utsname *name)
 
pid_t getpid ()
 
pid_t getppid ()
 呼び出し元プロセスの親プロセスのプロセスID取得 [詳解]
 
char * getenv (const char *name)
 環境変数取得 [詳解]
 
int launch_shell (std::string command)
 プロセスを起動する [詳解]
 
int daemon (int nochdir, int noclose)
 
int create_process (std::string command, std::vector< std::string > &out)
 プロセスを起動して出力を取得する [詳解]
 
bool dest_to_endpoint (std::string dest_addr, std::string &endpoint)
 宛先アドレスから利用されるエンドポイントアドレスを得る [詳解]
 
bool find_dest_ifname (std::string dest_addr, std::string &dest_if)
 宛先アドレスから利用されるネットワークインターフェース名を得る [詳解]
 
bool ifname_to_ipaddr (std::string ifname, std::string &ipaddr)
 ネットワークインターフェース名からIPアドレスを得る [詳解]
 
std::wstring string2wstring (std::string str)
 string から wstring への変換 [詳解]
 
std::string wstring2string (std::wstring wstr)
 wstring から string への変換 [詳解]
 
void toUpper (std::string &str)
 大文字への変換 [詳解]
 
void toLower (std::string &str)
 小文字への変換 [詳解]
 
int getlinePortable (std::istream &istr, std::string &line)
 入力ストリームから1行読み込む [詳解]
 
bool isEscaped (const std::string &str, std::string::size_type pos)
 文字列がエスケープされているか判断する [詳解]
 
std::string escape (const std::string str)
 文字列をエスケープする [詳解]
 
std::string unescape (const std::string str)
 文字列のエスケープを戻す [詳解]
 
void eraseBlank (std::string &str)
 文字列の空白文字を削除する [詳解]
 
void eraseHeadBlank (std::string &str)
 文字列の先頭の空白文字を削除する [詳解]
 
void eraseTailBlank (std::string &str)
 文字列の末尾の空白文字を削除する [詳解]
 
void eraseBothEndsBlank (std::string &str)
 文字列の先頭・末尾の空白文字を削除する [詳解]
 
std::string normalize (std::string &str)
 文字列を正規化する [詳解]
 
unsigned int replaceString (std::string &str, const std::string from, const std::string to)
 文字列を置き換える [詳解]
 
vstring split (const std::string &input, const std::string &delimiter, bool ignore_empty=false)
 文字列を分割文字で分割する [詳解]
 
bool toBool (std::string str, std::string yes, std::string no, bool default_value=true)
 与えられた文字列をbool値に変換する [詳解]
 
bool includes (const vstring &list, std::string value, bool ignore_case=true)
 文字列リスト中にある文字列が含まれるかどうかを判断する [詳解]
 
bool includes (const std::string &list, std::string value, bool ignore_case=true)
 文字列リスト中にある文字列が含まれるかどうかを判断する [詳解]
 
bool isAbsolutePath (const std::string &str)
 与えられた文字列が絶対パスかどうかを判断する [詳解]
 
bool isURL (const std::string &str)
 与えられた文字列がURLかどうかを判断する [詳解]
 
bool isIPv4 (const std::string &str)
 
bool isIPv6 (const std::string &str)
 
coil::mapstring urlparam2map (const std::string &str)
 与えられた文字列がURLかどうかを判断する [詳解]
 
template<class Printable >
std::string otos (Printable n)
 与えられたオブジェクトをstd::stringに変換 [詳解]
 
template<typename To >
bool stringTo (To &val, const char *str)
 与えられたstd::stringをオブジェクトに変換 [詳解]
 
template<>
bool stringTo< std::string > (std::string &val, const char *str)
 与えられた文字列をstd::stringに変換 [詳解]
 
template<>
bool stringTo< bool > (bool &val, const char *str)
 与えられた文字列リストから重複を削除 [詳解]
 
template<class T >
std::string ptrToHex (T *n)
 ポインタを16進数文字列に変換する [詳解]
 
template<class T >
bool hexToPtr (T *&ptr, const std::string str)
 16進数文字列をポインタに変換する [詳解]
 
vstring unique_sv (vstring sv)
 与えられた文字列リストから重複を削除 [詳解]
 
std::string flatten (vstring sv, std::string delimiter=", ")
 与えられた文字列リストからCSVを生成 [詳解]
 
char ** toArgv (const vstring &args)
 与えられた文字列リストを引数リストに変換 [詳解]
 
std::string sprintf (char const *__restrict fmt,...)
 指定された書式に変換 [詳解]
 
std::string replaceEnv (std::string str)
 文字列中の環境変数を置き換える [詳解]
 
unsigned int sleep (unsigned int seconds)
 指定された秒間は処理を休止する [詳解]
 
int sleep (TimeValue interval)
 指定された秒間は処理を休止する [詳解]
 
int usleep (useconds_t usec)
 指定されたマイクロ秒間は処理を休止する [詳解]
 
int gettimeofday (struct timeval *tv, struct timezone *tz)
 時刻とタイムゾーンを取得する [詳解]
 
TimeValue gettimeofday ()
 時刻を取得する [詳解]
 
int settimeofday (const struct timeval *tv, const struct timezone *tz)
 時刻とタイムゾーンを設定する [詳解]
 

詳解

Common Object Interface Layer.

型定義詳解

typedef std::vector<unsigned int> coil::CpuMask
typedef log_stream<char> coil::LogStream
typedef std::map<std::string, std::string> coil::mapstring
typedef ::pid_t coil::pid_t

呼び出し元プロセスのプロセスID取得

呼び出し元プロセスのプロセスIDを返す。

戻り値
プロセスID
typedef void(* coil::SignalHandler) (int)

システム情報取得

システム情報を構造体に設定して返す。

引数
name構造体名称
戻り値
0: 成功, -1: 失敗
typedef std::vector<std::string> coil::vstring

関数詳解

template<typename Object , typename Func >
Async_t<Object, Func>* coil::AsyncInvoker ( Object *  obj,
Func  func,
bool  auto_delete = false 
)
inline

非同期メンバー関数呼び出しヘルパー関数

メンバー関数を非同期に呼ぶためのヘルパー関数 例

class A { public: // 時間のかかる関数 void hoge() { for (int i(0); i < 5; ++i) { std::cout << "hoge" << std::endl; sleep(1); } } // 時間のかかる関数 void munya(const char* msg) { for (int i(0); i < 10; ++i) { std::cout << "message is: " << msg << std::endl; sleep(1); } } int add_one(int val) { return val + 1; } }; この様なクラスのオブジェクトに対して、

A a; Async* invoker0(AsyncInvoker(&a, std::mem_fun(&A::hoge))); Async* invoker1(AsyncInvoker(&a, std::bind2nd(std::mem_fun(&A::munya), "ほげ"))); invoker0->invoke(); // すぐに戻る invoker1->invoke(); // すぐに戻る

delete invoker0; // 必ず削除すること delete invoker1; // 必ず削除すること

のように非同期の呼び出しができる。 呼び出しの戻り値を取得したい場合は、自前の関数オブジェクトを用意する。

class add_one_functor { int m_val, m_ret; public: add_one_functor(int val) : m_val(val), m_ret(0) {} void operaotr(A* obj) { m_ret = obj->add_one(m_val); } int get_ret() { return m_ret; } };

上記の関数オブジェクトのインスタンスを作成し、そのポインタを渡す。

add_one_functor aof(100); Async* invoker2(AsyncInvoker(&a, &aof)); invoker2->invoke(); invoker2->wait(); std::cout << "result: " << aof.get_ret() << std::endl; delete invoker2;

通常、AsyncInvoker が返すオブジェクトは明示的に削除しなければ ならないが、第三引数に true を渡すことで、非同期実行が終了すると同時に 自動的にインスタンスが削除される。

// invoker3 は削除 (delete invoker3) してはいけない Async* invoker3(AsyncInvoker(&a, std::mem_fun(&A::hoge), true));

// インスタンス生成と同時に実行することもできる。 AsyncInvoker(&a, std::mem_fun(&A::hoge))->invoke();

引数
obj登録対象オブジェクト
func非同期実行用関数
auto_delete非同期実行終了時に自動的にインスタンス削除を行うかどうかのフラグ
戻り値
Async_t インスタンス
template<typename Object , typename Func >
Async_ref_t<Object, Func>* coil::AsyncInvoker ( Object *  obj,
Func *  func,
bool  auto_delete = false 
)
inline

非同期メンバー関数呼び出しヘルパー関数

メンバー関数を非同期に呼ぶためのヘルパー関数

引数
obj登録対象オブジェクト
func非同期実行用関数
auto_delete非同期実行終了時に自動的にインスタンス削除を行うかどうかのフラグ
戻り値
Async_ref_t インスタンス
std::string coil::basename ( const char *  path)
inline

ファイルパスよりファイル名部分を取得する

ファイルパスよりファイル名部分を取得する。

引数
pathファイルパス
戻り値
ファイル名称
unsigned short coil::crc16 ( const char *  str,
size_t  len 
)
unsigned long coil::crc32 ( const char *  str,
size_t  len 
)

CRC-32 計算関数

CRC種類: RFC2083 Appendix 15 CRC多項式: 0xedb88320L 初期値: 0xFFFFFFFF 出力XOR: 0xFFFFFFFF 入力ビット反転: なし 出力ビット反転: なし ビットシフト: 右

引数
strデータストリーム
lenデータ長
戻り値
計算結果
int coil::create_process ( std::string  command,
std::vector< std::string > &  out 
)

プロセスを起動して出力を取得する

引数
cmd起動する実行ファイルのフルパス
out出力結果
戻り値
0: 成功, -1: 失敗
template<class AbstractClass , class ConcreteClass >
AbstractClass* coil::Creator ( )

Creator テンプレート

参照元 Destructor().

int coil::daemon ( int  nochdir,
int  noclose 
)
bool coil::dest_to_endpoint ( std::string  dest_addr,
std::string &  endpoint 
)

宛先アドレスから利用されるエンドポイントアドレスを得る

宛先アドレスを与えると、その際に利用されるエンドポイントのアドレス が返される。宛先アドレス dest_addr には、IPアドレスまたはFQDNホス ト名を与えることができる。宛先アドレスが到 達可能であり、利用するエンドポイントが得られた場合 true、宛先アド レスに到達できない場合は false が返される。

引数
dest_addr宛先アドレスまたはホスト名
dest_if宛先と通信を行う際に使用されるインターフェース名
戻り値
成功 true, 失敗 false
template<class AbstractClass , class ConcreteClass >
void coil::Destructor ( AbstractClass *&  obj)
std::string coil::dirname ( char *  path)
inline

ファイルパスよりディレクトリ部分を取得する

ファイルパスよりディレクトリ部分を取得する。

引数
pathファイルパス
戻り値
ディレクトリ名称
void coil::eraseBlank ( std::string &  str)

文字列の空白文字を削除する

与えられた文字列の空白文字を削除する。 空白文字として扱うのは' '(スペース)と'\t'(タブ)。

引数
str空白文字削除処理文字列
void coil::eraseBothEndsBlank ( std::string &  str)

文字列の先頭・末尾の空白文字を削除する

与えられた文字列の先頭および末尾に存在する空白文字を削除する。 空白文字として扱うのは' '(スペース)と'\t'(タブ)。

引数
str先頭末尾空白文字削除処理文字列
void coil::eraseHeadBlank ( std::string &  str)

文字列の先頭の空白文字を削除する

与えられた文字列の先頭に存在する空白文字を削除する。 空白文字として扱うのは' '(スペース)と'\t'(タブ)。

引数
str先頭空白文字削除処理文字列
void coil::eraseTailBlank ( std::string &  str)

文字列の末尾の空白文字を削除する

与えられた文字列の末尾に存在する空白文字を削除する。 空白文字として扱うのは' '(スペース)と'\t'(タブ)。

引数
str末尾空白文字削除処理文字列
std::string coil::escape ( const std::string  str)

文字列をエスケープする

次の文字をエスケープシーケンスに変換する。
HT -> "\t"
LF -> "\n"
CR -> "\r"
FF -> "\f"
シングルクオート、ダブルクオートについてはとくに処理はしない。

引数
strエスケープ処理対象文字列
戻り値
エスケープ処理結果文字列
coil::vstring coil::filelist ( const char *  path,
const char *  glob_str = "" 
)
inline

ファイルリストを取得する

ディレクトリパスの中で指定ファイルにマッチするリストを取得する。

引数
pathディレクトリパス
glob_strファイル名
戻り値
ファイルリスト
bool coil::find_dest_ifname ( std::string  dest_addr,
std::string &  dest_if 
)

宛先アドレスから利用されるネットワークインターフェース名を得る

宛先アドレスを与えると、その際に利用されるネットワークインターフェー ス名をルーティングテーブルから取得する。宛先アドレス dest_addr に は、IPアドレスまたはFQDNホスト名を与えることができる。返される dest_if はネットワークインターフェース名である。宛先アドレスが到達 可能であり、利用するネットワークインターフェース名が得られた場合 true、宛先アドレスに到達できない場合は false が返される。

引数
dest_addr宛先アドレスまたはホスト名
dest_if宛先と通信を行う際に使用されるインターフェース名
戻り値
成功 true, 失敗 false
void coil::findFile ( std::string  dir,
std::string  filename,
coil::vstring filelist 
)
inline

指定ファイル名を指定ディレクトリから探査する

引数
dirディレクトリパス
filenameディレクトリパス
filelistファイル一覧
std::string coil::flatten ( vstring  sv,
std::string  delimiter = ", " 
)

与えられた文字列リストからCSVを生成

引数で与えられた文字列リストの各要素を並べたCSVを生成する。 文字列リストが空の場合には空白文字を返す。

引数
svCSV変換対象文字列リスト
戻り値
CSV変換結果文字列

参照元 hexToPtr().

char* coil::getenv ( const char *  name)
inline

環境変数取得

環境変数を返す。

引数
name環境変数名称
戻り値
環境変数の値(NULL: 該当なし)
void coil::getFileList ( std::string  dir,
std::string  ext,
coil::vstring filelist 
)
inline

ファイル一覧を指定ディレクトリから探査する

引数
dirディレクトリパス
ext拡張子
filelistファイル一覧

参照先 split().

int coil::getlinePortable ( std::istream &  istr,
std::string &  line 
)

入力ストリームから1行読み込む

入力ストリームから1行読み込む。 入力ストリームはの改行コードはUNIX, Windowsの改行コードのいずれか、 もしくは混在していてもよい。

引数
istr入力ストリーム
line読み込んだ文字列を格納する変数
戻り値
改行文字を除く読み込んだ文字列の長さ
pid_t coil::getpid ( )
inline
pid_t coil::getppid ( )
inline

呼び出し元プロセスの親プロセスのプロセスID取得

呼び出し元プロセスの親プロセスのプロセスIDを返す。

戻り値
プロセスID
bool coil::getProcCpuAffinity ( CpuMask cpu_mask)

プロセスのCPU affinityを取得する cpu_mask 現在設定されている affinity が CPU IDの std::vector<unsigned int> で返される。

戻り値
True: 成功、False: 失敗
bool coil::getThreadCpuAffinity ( CpuMask cpu_mask)

スレッドのCPU affinityを取得する cpu_mask 現在設定されている affinity が CPU IDの std::vector<unsigned int> で返される。

戻り値
True: 成功、False: 失敗
int coil::gettimeofday ( struct timeval *  tv,
struct timezone *  tz 
)
inline

時刻とタイムゾーンを取得する

時刻とタイムゾーンを取得する。

引数
tv時刻構造体
tzタイムゾーン構造体
戻り値
0: 成功, -1: 失敗

参照先 gettimeofday().

参照元 gettimeofday(), RTC::Timestamp< DataType >::operator()(), setTimestamp(), coil::Condition< Mutex >::wait().

TimeValue coil::gettimeofday ( )
inline

時刻を取得する

時刻を取得する。

戻り値
TimeValueオブジェクト

参照先 gettimeofday().

参照元 gettimeofday().

template<class T >
bool coil::hexToPtr ( T *&  ptr,
const std::string  str 
)

16進数文字列をポインタに変換する

引数で与えられた16進数文字列を文字列をに変換する。文字列の 先頭には "0x" が付加されているべきである。

引数
ptrポインタ
str16進数文字列
戻り値
変換が成功したら true、それ以外は false

参照先 flatten(), replaceEnv(), sprintf(), toArgv(), unique_sv().

bool coil::ifname_to_ipaddr ( std::string  ifname,
std::string &  ipaddr 
)

ネットワークインターフェース名からIPアドレスを得る

ネットワークインターフェース名を与えると、当該インターフェースに割 り当てられたIPアドレスを返す。IPアドレスが割り当てられていない場合 は、falseが返される。

引数
ifnameネットワークインターフェース名
ipaddrネットワークインターフェースに割り当てられたIPアドレス
戻り値
成功 true, 失敗 false
bool coil::includes ( const vstring list,
std::string  value,
bool  ignore_case = true 
)

文字列リスト中にある文字列が含まれるかどうかを判断する

第1引数にカンマ区切りのリストを、第2引数に探索対象文字列を指定し、 その文字列が第1引数の中に含まれるかを判断する。

引数
list対象リスト
value探索文字列
戻り値
true: 含まれる、false: 含まれない
bool coil::includes ( const std::string &  list,
std::string  value,
bool  ignore_case = true 
)

文字列リスト中にある文字列が含まれるかどうかを判断する

第1引数にカンマ区切りのリストを、第2引数に探索対象文字列を指定し、 その文字列が第1引数の中に含まれるかを判断する。

引数
list対象文字列
value探索文字列
戻り値
true: 含まれる、false: 含まれない
bool coil::isAbsolutePath ( const std::string &  str)

与えられた文字列が絶対パスかどうかを判断する

与えられた文字列が絶対パス表現であるかどうかを判断する。 文字列が以下の場合には絶対パスとして判断する。

  • 先頭文字が'/' (UNIXの場合)
  • 先頭3文字がアルファベット+'/'+'\' (Windowsの場合)
  • 先頭2文字が'\\' (Windowsネットワークパスの場合)
引数
str判定対象文字列
戻り値
絶対パス判定結果
bool coil::isEscaped ( const std::string &  str,
std::string::size_type  pos 
)

文字列がエスケープされているか判断する

指定された文字がエスケープされているかどうかを判断する。

引数
strエスケープされているかどうか判断する文字を含む文字列
posエスケープされているかどうか判断する文字の位置
戻り値
指定した文字がエスケープされていれば true, それ以外は false
bool coil::isIPv4 ( const std::string &  str)
bool coil::isIPv6 ( const std::string &  str)
bool coil::isURL ( const std::string &  str)

与えられた文字列がURLかどうかを判断する

与えられた文字列がURL表現かどうかを判断する。 与えられた文字列中に、'://'という文字列が含まれている場合には URL表現として判断する。

引数
str判定対象文字列
戻り値
URL判定結果
int coil::launch_shell ( std::string  command)

プロセスを起動する

プロセスを起動する。引数には起動するファイル名を与える。実行ファイ ルは環境変数 PATH に設定されたコマンドサーチパス内から検索され、見 つかればコマンドが起動される。プロセスの起動が成功すれば 0、失敗す れば -1 を返す。

引数
command起動する実行ファイルのフルパス
戻り値
0: 成功, -1: 失敗
std::string coil::normalize ( std::string &  str)

文字列を正規化する

与えられた文字列の先頭および末尾に存在する空白文字を削除し、 英字をすべて小文字に変換する。

引数
str処理対象文字列

参照元 RTC::RingBuffer< DataType >::empty(), RTC::ConnectorDataListenerT< DataType >::operator()().

template<class Printable >
std::string coil::otos ( Printable  n)

与えられたオブジェクトをstd::stringに変換

引数で指定されたオブジェクトを文字列に変換する。

引数
n変換対象オブジェクト
戻り値
文字列変換結果
template<class T >
std::string coil::ptrToHex ( T *  n)

ポインタを16進数文字列に変換する

引数で与えられた文字列を16進数文字列に変換する。変換された文字列の 先頭には "0x" が付加される。

引数
ptrポインタ
戻り値
16進数文字列
std::string coil::replaceEnv ( std::string  str)

文字列中の環境変数を置き換える

文字列中に${}で囲まれた文字列がある場合に、環境変数と置き換える 例:${RTM_ROOT} -> C: Files (x86)-aist\1.1.2\

引数
str置き換え前の文字列
戻り値
置き換え後の文字列

参照元 hexToPtr().

unsigned int coil::replaceString ( std::string &  str,
const std::string  from,
const std::string  to 
)

文字列を置き換える

与えられた文字列に対して、指定した文字の置き換えを行う。

引数
str置き換え処理対象文字列
from置換元文字
to置換先文字
bool coil::setProcCpuAffinity ( const CpuMask  cpu_mask)

プロセスのCPU affinityを設定する cpu_mask 設定する CPU affinity を CPU ID の std::vector<unsigned int> リストで与える

戻り値
True: 成功、False: 失敗
bool coil::setProcCpuAffinity ( std::string  cpu_mask)

プロセスのCPU affinityを文字列で設定する cpu_mask 設定する CPU affinity を CPU ID のカンマ区切り文字 列のリストで与える

戻り値
True: 成功、False: 失敗
bool coil::setThreadCpuAffinity ( const CpuMask  cpu_mask)

スレッドのCPU affinityを設定する cpu_mask 設定する CPU affinity を CPU ID の std::vector<unsigned int> リストで与える

戻り値
True: 成功、False: 失敗
bool coil::setThreadCpuAffinity ( std::string  mask)

スレッドのCPU affinityを文字列で設定する cpu_mask 設定する CPU affinity を CPU ID のカンマ区切り文字 列のリストで与える

戻り値
True: 成功、False: 失敗
int coil::settimeofday ( const struct timeval *  tv,
const struct timezone *  tz 
)
inline

時刻とタイムゾーンを設定する

時刻とタイムゾーンを設定する。

引数
tv時刻構造体
tzタイムゾーン構造体
戻り値
0: 成功, -1: 失敗
unsigned int coil::sleep ( unsigned int  seconds)
inline

指定された秒間は処理を休止する

指定された秒間は処理を休止する。

引数
seconds秒数
戻り値
0: 成功, >0: 失敗

参照先 sleep().

参照元 RTC::Manager::Terminator::svc().

int coil::sleep ( TimeValue  interval)
inline

指定された秒間は処理を休止する

指定された秒間は処理を休止する。

引数
intervalTimeValueオブジェクト
戻り値
0: 成功, >0: 失敗

参照先 coil::TimeValue::sec(), coil::TimeValue::usec().

参照元 sleep().

vstring coil::split ( const std::string &  input,
const std::string &  delimiter,
bool  ignore_empty = false 
)

文字列を分割文字で分割する

設定された文字列を与えられたデリミタで分割する。

引数
input分割対象文字列
delimiter分割文字列(デリミタ)
戻り値
文字列分割結果リスト

参照元 getFileList(), RTC::ConnectorDataListenerT< DataType >::operator()().

std::string coil::sprintf ( char const *__restrict  fmt,
  ... 
)

指定された書式に変換

引数で与えられた書式に変換して返す。

引数
fmt書式
戻り値
変換結果文字列

参照元 hexToPtr().

std::wstring coil::string2wstring ( std::string  str)

string から wstring への変換

与えられた string 文字列を wstring 文字列に変換

引数
strstd::string 型の入力文字列
戻り値
std::wstring 型の出力文字列
template<typename To >
bool coil::stringTo ( To &  val,
const char *  str 
)

与えられたstd::stringをオブジェクトに変換

引数で与えられた文字列を指定されたオブジェクトに変換する。

引数
val変換先オブジェクト
str変換元文字列
戻り値
true: 成功, false: 失敗

参照先 stringTo< bool >().

参照元 RTC::RingBuffer< DataType >::empty(), RTC_exp::PeriodicExecutionContext::getProperty().

template<>
bool coil::stringTo< bool > ( bool &  val,
const char *  str 
)

与えられた文字列リストから重複を削除

引数で与えられた文字列リストから重複を削除したリストを作成する。

引数
sv確認元文字列リスト
戻り値
重複削除処理結果リスト

参照元 stringTo().

template<>
bool coil::stringTo< std::string > ( std::string &  val,
const char *  str 
)

与えられた文字列をstd::stringに変換

引数で与えられた文字列をstd::stringに変換する。

引数
val変換先文字列
str変換元文字列
戻り値
true: 成功, false: 失敗
char** coil::toArgv ( const vstring args)

与えられた文字列リストを引数リストに変換

引数で与えられた文字列リストの各要素末尾に'\0'を加え、引数リスト に変換する。

引数
args変換対象文字列リスト
戻り値
引数変換結果文字列

参照元 hexToPtr().

bool coil::toBool ( std::string  str,
std::string  yes,
std::string  no,
bool  default_value = true 
)

与えられた文字列をbool値に変換する

指定された文字列を、true表現文字列、false表現文字列と比較し、その結果を bool値として返す。 比較の結果、true表現文字列、false表現文字列のどちらとも一致しない場合は、 与えられたデフォルト値を返す。

引数
str判断対象文字列
yestrue表現文字列
nofalse表現文字列
default_valueデフォルト値(デフォルト値:true)
void coil::toLower ( std::string &  str)

小文字への変換

与えられた文字列を小文字に変換

引数
str入力文字列
void coil::toUpper ( std::string &  str)

大文字への変換

与えられた文字列を大文字に変換

引数
str入力文字列
int coil::uname ( utsname name)
inline
std::string coil::unescape ( const std::string  str)

文字列のエスケープを戻す

次のエスケープシーケンスを文字に変換する。
"\t" -> HT
"\n" -> LF
"\r" -> CR
"\f" -> FF
"\"" -> "
"\'" -> '
※エスケープ処理の完全な逆変換にはなっていないため、注意が必要。

引数
strアンエスケープ処理対象文字列
戻り値
アンエスケープ処理結果文字列
vstring coil::unique_sv ( vstring  sv)

与えられた文字列リストから重複を削除

引数で与えられた文字列リストから重複を削除したリストを作成する。

引数
sv確認元文字列リスト
戻り値
重複削除処理結果リスト

参照元 hexToPtr().

coil::mapstring coil::urlparam2map ( const std::string &  str)

与えられた文字列がURLかどうかを判断する

与えられた文字列がURL表現かどうかを判断する。 与えられた文字列中に、'://'という文字列が含まれている場合には URL表現として判断する。

引数
str判定対象文字列
戻り値
URL判定結果
int coil::usleep ( useconds_t  usec)
inline

指定されたマイクロ秒間は処理を休止する

指定されたマイクロ秒間は処理を休止する。

引数
usecマイクロ秒数
戻り値
0: 成功, -1: 失敗
std::string coil::wstring2string ( std::wstring  wstr)

wstring から string への変換

与えられた wstring 文字列を string 文字列に変換

引数
strstd::wstring 型の入力文字列
戻り値
std::string 型の出力文字列