ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Asakusa Framework 0.10.1 Convertのoriginalを結線しない

2018-12-02 00:28:29 | PG(分散処理)

Asakusa Framework Advent Calendar 2018の2日目です。

今日はAsakusaFW 0.10.1で導入された新機能、Convert演算子の仕様変更の話です。


Convert演算子は入力のデータモデルを別のデータモデルに変換する処理を記述するものですが、出力はoutとoriginalの2種類あります。outは変換後のデータモデル、originalは変換前のデータモデルです。
厳密には、originalは入力データをそのまま出力するのではなく、メソッド内で入力データに対して変更(値の代入)をすると、それが反映されます。(つまりUpdate演算子も兼ねる、というイメージです)

しかし個人的には、originalは全く使ったことがありません^^;
いつも常に必ずstop演算子に渡していました。

MyConvert convert = operator.myConvert(in);
core.stop(convert.original);
Source<Model2> converted = convert.out;

AsakusaFWの思想としては、出力されたものは明示的に処理する(別の処理への入力とする(結線する))ことになっているのです。

それが、0.10.1から、Convertのoriginalについてはstop演算子に渡さなくても良くなりました!
これで以下のようにすっきりと書くことが出来ます。

Source<Model2> converted = operator.myConvert(in).out;

なお、省略できるのはConvertのoriginalだけです。

MasterCheckやMasterJoinUpdate等のmissedは省略できません。
これについては、missedの方を後続処理に渡すことも多々あるので、省略しない方が良いと思います。 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする