From f15e8d450d65747f2ac0b3ba81250b7a464f4160 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Mon, 5 Jun 2017 00:21:39 +0200 Subject: [PATCH] [DEV] correct the Future::get that does not work anymore --- lutinMacro_zeus.py | 10 +- .../cli-video/appl/main-tool-client-video.cpp | 4 +- zeus/Future.cpp | 260 +++++++++--------- zeus/Future.hpp | 6 +- 4 files changed, 142 insertions(+), 138 deletions(-) diff --git a/lutinMacro_zeus.py b/lutinMacro_zeus.py index d8e3b3f..a6e3cbe 100644 --- a/lutinMacro_zeus.py +++ b/lutinMacro_zeus.py @@ -573,17 +573,17 @@ class ServiceDefinition: out += " }\n" out += " }\n" out += " \n" - out += " template<> " + self.prop["name_class_proxy"] + " zeus::Future<" + self.prop["name_class_proxy"] + ">::get() {\n" + out += " template<> " + self.prop["name_class_proxy"] + " futureGetValue<" + self.prop["name_class_proxy"] + ">(ememory::SharedPtr& _promise) {\n" out += " ememory::SharedPtr out;\n" - out += " if ( m_promise == nullptr\n" - out += " || m_promise->getRaw() == nullptr) {\n" + out += " if ( _promise == nullptr\n" + out += " || _promise->getRaw() == nullptr) {\n" out += " return zeus::ObjectRemote(out);\n" out += " }\n" - out += " if (m_promise->getRaw()->getType() != zeus::message::type::answer) {\n" + out += " if (_promise->getRaw()->getType() != zeus::message::type::answer) {\n" out += " ZEUS_WARNING(\"No Return value ...\");\n" out += " return zeus::ObjectRemote(out);\n" out += " }\n" - out += " out = static_cast(m_promise->getRaw().get())->getAnswer>();\n" + out += " out = static_cast(_promise->getRaw().get())->getAnswer>();\n" out += " \n" out += " return zeus::ObjectRemote(out);\n" out += " }\n" diff --git a/tools/cli-video/appl/main-tool-client-video.cpp b/tools/cli-video/appl/main-tool-client-video.cpp index 6ec583a..04b316a 100644 --- a/tools/cli-video/appl/main-tool-client-video.cpp +++ b/tools/cli-video/appl/main-tool-client-video.cpp @@ -46,7 +46,7 @@ static std::string extractAndRemove(const std::string& _inputValue, const char _ return out; } bool progressCall(const std::string& _value) { - + return false; } void progressCallback(const std::string& _value) { @@ -109,7 +109,7 @@ bool pushVideoFile(zeus::service::ProxyVideo& _srv, std::string _path, std::map< } // TODO: Do it better ==> add the calback to know the push progression ... auto sending = _srv.add(zeus::File::create(_path, storedSha512)); - sending.onProgress(progressCallback); + sending.onSignal(progressCallback); uint32_t mediaId = sending.waitFor(echrono::seconds(20000)).get(); if (mediaId == 0) { APPL_ERROR("Get media ID = 0 With no error"); diff --git a/zeus/Future.cpp b/zeus/Future.cpp index dd6f03d..fdecbc8 100644 --- a/zeus/Future.cpp +++ b/zeus/Future.cpp @@ -12,341 +12,341 @@ namespace zeus { template<> - bool zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + bool futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return false; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return false; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - int64_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + int64_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - int32_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + int32_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - int16_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + int16_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - int8_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + int8_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - uint64_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + uint64_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - uint32_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + uint32_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - uint16_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + uint16_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - uint8_t zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + uint8_t futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - double zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + double futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0.0; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - float zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + float futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return 0.0f; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return 0.0f; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - std::string zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + std::string futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return ""; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return ""; } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - std::vector zeus::Future>::get() { + std::vector futureGetValue>(ememory::SharedPtr& _promise) { std::vector out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } template<> - zeus::Raw zeus::Future::get() { - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + zeus::Raw futureGetValue(ememory::SharedPtr& _promise) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return zeus::Raw(); } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return zeus::Raw(); } - return static_cast(m_promise->getRaw().get())->getAnswer(); + return static_cast(_promise->getRaw().get())->getAnswer(); } template<> - ememory::SharedPtr zeus::Future>::get() { + ememory::SharedPtr futureGetValue>(ememory::SharedPtr& _promise) { ememory::SharedPtr out; - if ( m_promise == nullptr - || m_promise->getRaw() == nullptr) { + if ( _promise == nullptr + || _promise->getRaw() == nullptr) { return out; } - if (m_promise->getRaw()->getType() != zeus::message::type::answer) { + if (_promise->getRaw()->getType() != zeus::message::type::answer) { ZEUS_WARNING("No Return value ..."); return out; } - out = static_cast(m_promise->getRaw().get())->getAnswer>(); + out = static_cast(_promise->getRaw().get())->getAnswer>(); return out; } } diff --git a/zeus/Future.hpp b/zeus/Future.hpp index ab38f64..152862d 100644 --- a/zeus/Future.hpp +++ b/zeus/Future.hpp @@ -11,6 +11,8 @@ namespace zeus { class void_tmp {}; + template + ZEUS_RETURN futureGetValue(ememory::SharedPtr& _promise); /** * @brief future template to cast type in a specific type */ @@ -38,7 +40,9 @@ namespace zeus { * @brief Get the value Requested with the type * @return requested value */ - ZEUS_RETURN get(); + ZEUS_RETURN get() { + return zeus::futureGetValue(m_promise); + } const Future& wait() const { zeus::FutureBase::wait(); return *this;