Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
started of C++ wrappers for Msg
[simgrid.git] / src / cxx / Host.hpp
diff --git a/src/cxx/Host.hpp b/src/cxx/Host.hpp
new file mode 100644 (file)
index 0000000..03b9232
--- /dev/null
@@ -0,0 +1,92 @@
+#ifndef MSG_HOST_HPP\r
+#define MSG_HOST_HPP\r
+\r
+\r
+// Compilation C++ recquise\r
+#ifndef __cplusplus\r
+       #error Host.hpp requires C++ compilation (use a .cxx suffix)\r
+#endif\r
+\r
+namespace msg\r
+{\r
+class Host\r
+{\r
+       private :\r
+               // Default constructor.\r
+               Host();\r
+               \r
+               // Copy constructor.\r
+               Host(const Host& rHost);\r
+               \r
+               // Destructor.\r
+               virtual ~Host();\r
+       \r
+       public: \r
+               \r
+       // Operations\r
+       \r
+       static Host& getByName(const char* hostName)\r
+       throw(HostNotFoundException);\r
+       \r
+       static int getNumber(void);\r
+       \r
+       static Host& currentHost(void);\r
+       \r
+       static int all(Host** hosts);\r
+       \r
+       \r
+       const char* getName(void) const;\r
+       \r
+       void setData(void* data);\r
+       \r
+       // Getters/setters\r
+       \r
+       void* getData(void) const;\r
+       \r
+       int Host::getRunningTaskNumber(void) const;\r
+               \r
+       double getSpeed(void) const;\r
+       \r
+       bool hasData(void) const;\r
+       \r
+       bool isAvailble(void) const;\r
+       \r
+       void put(int channel, const Task& rTask)\r
+       throw(NativeException);\r
+       \r
+       void put(int channel, Task task, double timeout) \r
+       throw(NativeException);\r
+       \r
+       void Host::putBounded(int channel, const Task& rTask, double maxRate) \r
+       throw(NativeException);\r
+\r
+       \r
+       void send(const Task& rTask) \r
+       throw(NativeException);\r
+       \r
+       void send(const char* alias, const Task& rTask) \r
+       throw(NativeException);\r
+       \r
+       void send(const Task& rTask, double timeout) \r
+       throw(NativeException);\r
+       \r
+       void send(const char* alias, const Task& rTask, double timeout) \r
+       throw(NativeException);\r
+       \r
+       void sendBounded(const Task& rTask, double maxRate) \r
+       throw(NativeException);\r
+       \r
+       void sendBounded(const char* alias, const Task& rTask, double maxRate) \r
+       throw(NativeException);   \r
+       \r
+       \r
+       private:\r
+               // Attributes.\r
+               \r
+               m_host_t nativeHost;\r
+               \r
+               void* data;\r
+       };\r
+}\r
+\r
+#endif // !MSG_HOST_HPP
\ No newline at end of file