comparison Paper/jssst.tex @ 32:eb062917ad2d

description for DefaultTreeOperationContainer
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Fri, 19 Jul 2013 12:02:27 +0900
parents 984092bfce37
children 6a21f8637fa6
comparison
equal deleted inserted replaced
31:984092bfce37 32:eb062917ad2d
304 また, 親も子供となるノードの DSM に対して "child1" や "child2" キーによりアクセスすることが可能となる. 304 また, 親も子供となるノードの DSM に対して "child1" や "child2" キーによりアクセスすることが可能となる.
305 305
306 Alice ではスクリプトが用意されており, ノードの数と子供の数を指定するだけで dot ファイルの作成が行える. 306 Alice ではスクリプトが用意されており, ノードの数と子供の数を指定するだけで dot ファイルの作成が行える.
307 このように, 比較的楽にトポロジーの形成が行えるのは Alice の特徴である. 307 このように, 比較的楽にトポロジーの形成が行えるのは Alice の特徴である.
308 308
309
310 \subsection{TreeOperationLog の MessagePack によるシリアライズ} 309 \subsection{TreeOperationLog の MessagePack によるシリアライズ}
311 TreeOperationLog はそのまま MessagePack でシリアライズすることはできない. 310 TreeOperationLog は MessagePack でシリアライズできないものを List のフィールド変数に保持していた.
312 TreeOperationLog は TreeOperation をフィールドに List として保持していた. 311 そのため, TreeOperationLog はそのままでは MessagePack でシリアライズすることはできない.
313 フィールドとして保持しているものは全て MessagePack でシリアライズできるものに 312 フィールドとして保持しているものは全て MessagePack でシリアライズできるものに
314 しなけれならない. 313 する必要がある.
315 そこで, フィールドで保持しているもの Value 型に変換するための Container クラス 314 そこで, フィールドで保持しているもの Value 型に変換するための Container クラス
316 作成をそれぞれ行った. 315 作成をそれぞれ行った.
317 ログに関連するクラス全てをシリアライズするクラスを行った後に, それら全てをまとめる 316 ログに関連するクラス全てをシリアライズするクラスを行った後に, それら全てをまとめる
318 DefaultTreeOperationLogContainer クラスの作成を行った. 317 DefaultTreeOperationLogContainer クラスの作成を行った.
319 このクラスは TreeOperationLog を Value 型へと変換しフィールド変数で保持する. 318 このクラスは TreeOperationLog を Value 型へと変換しフィールド変数で保持する.
345 logValue = listValue; // field variable 344 logValue = listValue; // field variable
346 } 345 }
347 \end{verbatim} 346 \end{verbatim}
348 %\end{lstlisting} 347 %\end{lstlisting}
349 348
349 上記のソースでは主に MessagePack により List<TreeOperation> で保持していた TreeOperation を List<Value> へと変換させている.
350 SingleTonMessage は使用する MessagePack を Singleton で使用するためのクラスである. 350 SingleTonMessage は使用する MessagePack を Singleton で使用するためのクラスである.
351 MessagePack により List<TreeOperation> で保持していた TreeOperation を List<Value> へと変換させている. 351 これにより何度も MessagePack を new することを防いでいる.
352 また, TreeOperationLog の保持だけでなく, 編集した木の名前やリビジョン番号, 変更を行ったノードの情報を 352
353 ノードの名前といった情報も保持させる. 353 また, Data Segment にするにあたり, TreeOperationLog の保持だけでなく, 編集した木の
354 名前やリビジョン番号, 変更を行ったノードの情報をノードの名前といった情報も保持させる.
354 DefaultTreeOperationLogContainer の生成から Data Segment へ put を行なっているソースを次に示す. 355 DefaultTreeOperationLogContainer の生成から Data Segment へ put を行なっているソースを次に示す.
355 \begin{verbatim} 356 \begin{verbatim}
356 DefaultTreeOperationLogContainer container 357 DefaultTreeOperationLogContainer container
357 = new DefaultTreeOperationLogContainer(); 358 = new DefaultTreeOperationLogContainer();
358 container.setTreeName(_treeName); 359 container.setTreeName(_treeName);