メモ - MirrgieRiana/mirrg.mpg.sulfur GitHub Wiki
パケットは全部イミュータブル
外部Inputノードが得た奴を速攻保存 外部Inputノードごとに個別の保存容量
外部入力パケットが順番に伝搬して外部出力する 半端に外部出力した状態で異常終了した場合、 再開時に一旦正常になるようにパケットを出力しきる
全ての出力先を巡回したInputパケットは完了したことをマークされる
セッション: 単一のスレッドが巡回する範囲 スレッドは外部入力ノードで生成されてノードを巡って外部出力し終わると消滅する
ノードの入力端子が持つデータ 同期するか否か
型推論 型をいちいち指定することで省略可能
匿名ノードクラスタ XStreamなら可
ノードのインスタンス問題 インスタンスが複数だと[1, 2, 3, 4]が[1, 3][2, 4]みたいになる TCPOutの場合などに影響
GUI ICの回路素子的な感じで横に置く シムシティみたいに素子を配置 座標はDouble グリッド機能で素子の中央をグリッドに合わす ワイヤーを素子のピンにつないでいく
ファイル読み込み・シリアル読み込み・TCP読み込みなどは独自のスレを製造 タイマーイベント発生器も同様
参照透過性がないノードはセッションを透過できなくする よってパケットが通過するごとにスレッドを生産する
異常終了透過性 パケットが半端に出力された状態で異常終了した後再開すると、 正しい順序で残りの分を出力してから次のパケットに取り掛かる
単一ファイル入力 ・ファイルを指定バイト数ごとに読み取ってバイト列をパケットにする ・一行ずつ文字列を読み込んでパケットにする
セッション透過 ブロッキングしない入力ノードはrunできる
フォルダ入力 フォルダ内にファイルが出現した場合、 それを別の場所に退避させるとともに内容についてパケットを生成
初心者向きかつ上級者むき GUIとCUI両方サポート 初心者向きには汎用性の低い複合ノードを提供 上級者むきには汎用性の高い基礎ノードを提供
型構造 Any Json Number String List
String[][]
{a: Number, b: String, c: {d: Any}[]}
Object
File
BufferedImage
型引数
処理形態(インプットノード)には2種類ある 同期 ファイル読み込み TCPクライアントソケット 有限リスト 非同期 TCPサーバーソケット インターバルタイマイベント フォルダ監視 GUIボタン シリアル通信 TCP/UDP通信
同期はスレッド立てずにすべてできる
非同期はスレッドが必須
同期は入力データが再読み込みできる
非同期はできない
よって入力データを保管しておかないと、再起動時にデータが消える
同期はおまけ
基本的にセッションの開始ノードにはスレッドを作る
同期はパケット数が1個とかで終わるストリームとして扱う
その時もスレを作る
すべてのデータを処理し終えたらClose