Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / Tuto_Boost / src / cpp / core / thread / Runnable.h
diff --git a/WCudaMSE/Tuto_Boost/src/cpp/core/thread/Runnable.h b/WCudaMSE/Tuto_Boost/src/cpp/core/thread/Runnable.h
new file mode 100755 (executable)
index 0000000..241db4d
--- /dev/null
@@ -0,0 +1,91 @@
+#ifndef RUNNABLE_H_\r
+#define RUNNABLE_H_\r
+\r
+#include <iostream>\r
+#include <boost/date_time.hpp>\r
+#include <boost/thread.hpp>\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+using boost::posix_time::seconds;\r
+using boost::this_thread::sleep;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+class Runnable\r
+    {\r
+    public:\r
+\r
+       Runnable(int a, int b)\r
+           {\r
+           // inputs\r
+           this->a = a;\r
+           this->b = b;\r
+\r
+           // ouputs\r
+           this->result = -1;\r
+           }\r
+\r
+       virtual ~Runnable(void)\r
+           {\r
+           // rien\r
+           }\r
+\r
+       /**\r
+        * Foncteur\r
+        */\r
+       void operator()()\r
+           {\r
+           cout << "runnable : foncteur : start" << endl;\r
+           work();\r
+           cout << "runnable : foncteur : end" << endl;\r
+           }\r
+\r
+       void run(void)\r
+           {\r
+           cout << "runnable : methode : start" << endl;\r
+           work();\r
+           cout << "runnable : methode : end" << endl;\r
+           }\r
+\r
+       int getResult(void)\r
+           {\r
+           return this->result;\r
+           }\r
+\r
+    private:\r
+\r
+       /**\r
+        * common to work and operator()\r
+        */\r
+       void work(void)\r
+           {\r
+\r
+           this->result = a + b;\r
+           cout << "[inside thread] : " << a << " + " << b << " = " << result << endl;\r
+           // Pretend to do something useful...\r
+               {\r
+               seconds workTime(3);\r
+               sleep(workTime);\r
+               }\r
+           }\r
+\r
+    private:\r
+\r
+       int a;\r
+       int b;\r
+       int result;\r
+    };\r
+\r
+#endif \r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r