Mercurial > hg > Papers > 2013 > nobuyasu-jssst
changeset 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 |
files | Paper/jssst.tex |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/Paper/jssst.tex Fri Jul 19 11:54:36 2013 +0900 +++ b/Paper/jssst.tex Fri Jul 19 12:02:27 2013 +0900 @@ -306,12 +306,11 @@ Alice ではスクリプトが用意されており, ノードの数と子供の数を指定するだけで dot ファイルの作成が行える. このように, 比較的楽にトポロジーの形成が行えるのは Alice の特徴である. - \subsection{TreeOperationLog の MessagePack によるシリアライズ} -TreeOperationLog はそのまま MessagePack でシリアライズすることはできない. -TreeOperationLog は TreeOperation をフィールドに List として保持していた. +TreeOperationLog は MessagePack でシリアライズできないものを List のフィールド変数に保持していた. +そのため, TreeOperationLog はそのままでは MessagePack でシリアライズすることはできない. フィールドとして保持しているものは全て MessagePack でシリアライズできるものに -しなけれならない. +する必要がある. そこで, フィールドで保持しているもの Value 型に変換するための Container クラス 作成をそれぞれ行った. ログに関連するクラス全てをシリアライズするクラスを行った後に, それら全てをまとめる @@ -347,10 +346,12 @@ \end{verbatim} %\end{lstlisting} +上記のソースでは主に MessagePack により List<TreeOperation> で保持していた TreeOperation を List<Value> へと変換させている. SingleTonMessage は使用する MessagePack を Singleton で使用するためのクラスである. -MessagePack により List<TreeOperation> で保持していた TreeOperation を List<Value> へと変換させている. -また, TreeOperationLog の保持だけでなく, 編集した木の名前やリビジョン番号, 変更を行ったノードの情報を -ノードの名前といった情報も保持させる. +これにより何度も MessagePack を new することを防いでいる. + +また, Data Segment にするにあたり, TreeOperationLog の保持だけでなく, 編集した木の +名前やリビジョン番号, 変更を行ったノードの情報をノードの名前といった情報も保持させる. DefaultTreeOperationLogContainer の生成から Data Segment へ put を行なっているソースを次に示す. \begin{verbatim} DefaultTreeOperationLogContainer container