# HG changeset patch # User riono # Date 1620213364 -32400 # Node ID 10abbf7dfd93609510eae16fab227228673c6541 # Parent 37ae4f921c347d1e45276f86de79a522aa927a38 update Chrisite C# example diff -r 37ae4f921c34 -r 10abbf7dfd93 Paper/riono-sigos.pdf Binary file Paper/riono-sigos.pdf has changed diff -r 37ae4f921c34 -r 10abbf7dfd93 Paper/riono-sigos.tex --- 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} diff -r 37ae4f921c34 -r 10abbf7dfd93 Paper/src/FinishHelloWorld.cs --- /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(); + } +} diff -r 37ae4f921c34 -r 10abbf7dfd93 Paper/src/HelloWorldCodeGear.cs --- /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); + } +}