Details TOP Build

使用法

この章ではGitHubリポジトリにあるk2htp_mdtor(以下K2HTPMDTORと呼ぶ)の例を使用する方法を説明します。サンプルコードを実行するには2つのステップで十分です。

  1. K2HTPMDTORをインストールする
  2. サンプルコードを実行する

K2HTPMDTORをインストールする

このセクションではバイナリパッケージのインストール方法を説明します。ソースコードからバイナリをビルドしたい場合はBuildページを読んでください。

DebianStretchまたはUbuntu(Bionic Beaver)をお使いの場合は、以下の手順に従ってください。

$ sudo apt-get update -y
$ sudo apt-get install curl -y
$ curl -s https://packagecloud.io/install/repositories/antpickax/stable/script.deb.sh \
    | sudo bash
$ sudo apt-get install k2htpmdtor

Fedora28またはCentOS7.x(6.x)ユーザーの場合は、以下の手順に従ってください。

$ sudo yum makecache
$ sudo yum install curl -y
$ curl -s https://packagecloud.io/install/repositories/antpickax/stable/script.rpm.sh \
    | sudo bash
$ sudo yum install k2htpmdtor -y

サンプルコードを実行する

あなたは単に2つのステップが必要です。リポジトリを複製します。そしてサンプルコードを実行します。

$ git clone https://github.com/yahoojapan/k2htp_mdtor.git
$ cd k2htp_mdtor/tests
$ sh test.sh
                                                                                                                                          
====== Start INI file test =================================                                                                              
------ Initialize test environment for INI file ------------   

....

====== Finish all ==========================================

RESULT --> SUCCEED

次の図は、test.shからlibk2htpmdtordmy2.soへの単純な呼び出しの流れを示しています。

  1. test.shはk2htpmdtortestをフォークします。
  2. k2htpmdtortestのmain関数は、K2HASHを共有ライブラリとしてロードします。
  3. K2HASHK2HTPMDTORを共有ライブラリとしてロードし、test.iniをK2HTPMDTORに渡します。
  4. K2HTPMDTORはtest.iniを読み込み、トランザクションプラグインをロードします。
test.sh
   |
   v
 (fork) --> k2htpmdtortest
               |
               v
            (load) --> k2hash(libk2hash.so)  
                          |
                          |--> (pass) test.ini
                          |              |
                          v              v
                       (load) --> k2htp_mdtor(libk2htpmdtor.so)
                                     |
                                     v
                                   (load) --> transaction plugin(libk2htpmdtordmy.so)
                                     |
                                     v
                                   (load) --> transaction plugin(libk2htpmdtordmy2.so)
...

上記のソースと設定はGitHubで入手できます。

Details TOP Build