/** @file * @author Edouard DUPIN * @copyright 2014, Edouard DUPIN, all right reserved * @license APACHE v2.0 (see license file) */ #include #include #include #include #include namespace zeus { template<> bool zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return false; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return false; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> int64_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> int32_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> int16_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> int8_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> uint64_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> uint32_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> uint16_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> uint8_t zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> double zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0.0; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> float zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return 0.0f; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0.0f; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> std::string zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return ""; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return ""; } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> std::vector zeus::Future>::get() { std::vector out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } template<> zeus::Raw zeus::Future::get() { if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return zeus::Raw(); } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return zeus::Raw(); } return static_cast(m_promise->getRaw().get())->getAnswer(); } template<> ememory::SharedPtr zeus::Future>::get() { ememory::SharedPtr out; if ( m_promise == nullptr || m_promise->getRaw() == nullptr) { return out; } if (m_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } out = static_cast(m_promise->getRaw().get())->getAnswer>(); return out; } }