Mercurial > hg > Papers > 2021 > riono-sigos
changeset 20:10abbf7dfd93
update Chrisite C# example
author | riono <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 05 May 2021 20:16:04 +0900 |
parents | 37ae4f921c34 |
children | ddfb4ce43a83 |
files | Paper/riono-sigos.pdf Paper/riono-sigos.tex Paper/src/FinishHelloWorld.cs Paper/src/HelloWorldCodeGear.cs |
diffstat | 4 files changed, 25 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/Paper/riono-sigos.tex Wed May 05 20:01:40 2021 +0900 +++ b/Paper/riono-sigos.tex Wed May 05 20:16:04 2021 +0900 @@ -132,9 +132,9 @@ \section{プログラムの例} Code \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} はChrisite の機能を使用してhello world を出力する例題である。 -\lstinputlisting[caption=StartHelloWorld, label=code:javaSHW]{src/StartHelloWorld.java} -\lstinputlisting[caption=HelloWorldCodeGear, label=code:javaHWC]{src/HelloWorldCodeGear.java} -\lstinputlisting[caption=FinishHelloWorld, label=code:javaFHW]{src/FinishHelloWorld.java} +\lstinputlisting[caption=java StartHelloWorld, label=code:javaSHW]{src/StartHelloWorld.java} +\lstinputlisting[caption=java HelloWorldCodeGear, label=code:javaHWC]{src/HelloWorldCodeGear.java} +\lstinputlisting[caption=java FinishHelloWorld, label=code:javaFHW]{src/FinishHelloWorld.java} Code \ref{code:javaSHW} ではCodeGearManager を作り、setup(new CodeGear) を行うことで各CodeGear に記述されたDataGear の待ち合わせを行う。全てのDataGear が揃った場合にCodeGear が実行される。CodeGearaManager の作成方法はStartCodeGear を継承したものから、createCGM(port) を実行することにより、CodeGearManager が作成できる。 @@ -150,11 +150,14 @@ \section{C\# でのChristie} - -Code \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} がC\#ではこうなります +Code \ref{code:csSHW}、Code \ref{code:csHWC}、Code \ref{code:csFHW}、はCode \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} の例題をC\# に書き換えたものである。 \lstinputlisting[caption=C\# StartHelloWorld, label=code:csSHW]{src/StartHelloWorld.cs} +\lstinputlisting[caption=C\# StartHelloWorld, label=code:csHWC]{src/HelloWorldCodeGear.cs} +\lstinputlisting[caption=C\# StartHelloWorld, label=code:csFHW]{src/FinishHelloWorld.cs} +java とC\# はクラスや変数などの記述方法が似ているため、書き換えの際の大きな変更は少ない。 +C\# ではjava のannotation はなく、attribute を利用する。attribute の使用方法はCode \ref{code:csHWC} の5行目のように、attribute を付与したい変数の前に[Take] などつけることで使用可能である。 \section{Unity}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/src/FinishHelloWorld.cs Wed May 05 20:16:04 2021 +0900 @@ -0,0 +1,8 @@ +public class FinishHelloWorld : CodeGear { + [Take] private string hello; + [Take] private string world; + + public override void Run(CodeGearManager cgm) { + cgm.GetLocalDGM().Finish(); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/src/HelloWorldCodeGear.cs Wed May 05 20:16:04 2021 +0900 @@ -0,0 +1,9 @@ +public class HelloWorldCodeGear : CodeGear { + [Take] string helloWorld; + + public override void Run(CodeGearManager cgm) { + Console.Write(helloWorld + " "); + cgm.Setup(new HelloWorldCodeGear()); + cgm.GetLocalDGM().Put(helloWorld, helloWorld); + } +}