+++ /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
+++ /dev/null
-#ifndef GIKOMONA_CORE_QUERY_HPP_INCLUDED
-#define GIKOMONA_CORE_QUERY_HPP_INCLUDED
-
-#include <boost/fusion/include/vector.hpp>
-#include <boost/mpl/bool.hpp>
-
-#include "GikoMona.hpp"
-
-namespace monazilla { namespace GikoMona { namespace core {
-
-template <typename T>
-struct is_satisfied_with_query_concept : public boost::mpl::false_ {};
-
-/**
- * @brief このクラスは query_concept を満たす全てのクラスが継承しなければならない。
- */
-class query {
-public:
- /// query_concept を満たすクラスは自分自身の型を self_type として表明しなければならない。
- typedef query self_type;
-
- template <typename T, typename U>
- using enable_if_T_is_U = typename std::enable_if<std::is_same<T, U>::value>::type;
-
- /// query_concept を満たすクラスは外部から構築可能でなければならない。
- query() {}
- /// query_concept を満たすクラスは外部から解体可能でなければならない。
- ~query() {}
-
- /**
- * @breif query_concept を満たすクラスはこの関数と同じ型、名前を持つ関数を持っていなければならない。
- * @retval true insert 操作が成功した
- * false insert 操作に失敗した
- * @param[in] into どのテーブルのどの要素に対し insertion query を実行するかを記述する。
- * 記述の仕方は次の通り:(テーブル名)/[(サブテーブル名)/]*(要素名)
- * @param[in] value テーブルに対して代入する値を記述する。
- * @note さらに、最大限 multi-threading な環境を考慮しなければならない。
- */
- template <typename T, typename U, typename ...ValueType>
- virtual
- bool insert(const mona_string& into,
- const boost::fusion::vector<T, U, ValueType...>& value) override {}
-
- template <typename T>
- virtual
- bool insert(const mona_string& into,
- const boost::fusion::vector<T>& value) override {}
-
- template <typename T>
- virtual
- bool insert(const mona_string& into,
- const boost::any& value,
- enable_if_T_is_U<T, boost::any>*& = enabler) override {}
-
- /**
- * @brief query_concept を満たすクラスはこの関数と同じ型、名前を持つ関数を持っていなければならない。
- * @return 引数で指定したテーブルの要素から、テンプレートで指定した方に変換された値が返される。
- */
- template <typename T>
- virtual
- T select(const mona_string& column,
- const mona_string& from) const noexcept override {}
-
- template <typename T>
- virtual
- boost::any select(const mona_string& column,
- const mona_string& from,
- enable_if_T_is_U<T, boost::any>*& = enabler) const noexcept override {}
-
- template <typename ...ValueType>
- virtual
- boost::fusion::vector<ValueType...>
- select_all(const mona_string& from) const noexcept override {}
-};
-
-} } }
-
-#endif
\ No newline at end of file