🐈
rclcpp code reading 2 (NodeInterface概要)
はじめに
rclcppのコードリーディングをしています。
基本的にはardent branchのものを読んでいます。(コード量が少ないのと、把握してから変更点を追いかける方針)
なんちゃってロボットエンジニアなので間違っていれば教えてください。
コードは下記から引用しております。
NodeInterface
Nodeクラスには様々なpublic関数がありますが実装を見るとメンバ変数から同じ名称の関数を
呼び直してるだけのようです。
そして、メンバ変数を見ると、NodeXXXInterfaceへのポインタのようです。
コンストラクタを見るとNodeXXXクラスをnewしてます。
NodeXXXクラスはNodeXXXInterfaceを継承するクラスですね。
Interfaceは
node_base,clock,graph,parameter...などなど機能別に分かれているようです。
また、基本的にはinterfaceに処理を委譲してますが、
node_impl.hppにはrclcpp namespce下の関数をコールする実装が存在します。
Nodeクラス自体は、ポインタをまとめてるだけで、ほぼほぼnode_interfaceに処理を委譲している作りになっていますね。facadeになっているようです。
次は、interfaceクラスの実装を眺めてみます。
Discussion