--- /dev/null
+
+#ifndef GIKOMONA_CORE_INTERPROCESS_COMMUNICATION_HPP
+#define GIKOMONA_CORE_INTERPROCESS_COMMUNICATION_HPP
+
+#include "string.hpp"
+
+namespace monazilla { namespace GikoMona { namespace core { namespace interprocess {
+
+class message_trait {
+public:
+ static mona_string to_string() const;
+};
+
+class communication {
+public:
+ communication();
+ ~comunication();
+
+ bool connect();
+
+ template <class MessageTypa>
+ bool send_message(MessageType&& msg);
+
+ template <class MessageType>
+ bool send_message_async(MessageType&& msg);
+
+ bool read_message();
+ bool read_message_async();
+
+private:
+ bool send_string(mona_string&& src);
+ bool send_string_async(mona_string&& src);
+};
+
+template <class MessageType>
+bool communication::send_message(MessageType&& msg);
+
+} } } }
+
+#endif // GIKOMONA_CORE_INTERPROCESS_COMMUNICATION_HPP