/** @file * @author Edouard DUPIN * @copyright 2014, Edouard DUPIN, all right reserved * @license APACHE v2.0 (see license file) */ #include #include #include #include #include namespace jus { template<> bool jus::Future::get() { if (m_data == nullptr) { return false; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return false; } return m_data->m_returnData.getAnswer(); } template<> int64_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> int32_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> int16_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> int8_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> uint64_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> uint32_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> uint16_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> uint8_t jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0; } return m_data->m_returnData.getAnswer(); } template<> double jus::Future::get() { if (m_data == nullptr) { return 0; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0.0; } return m_data->m_returnData.getAnswer(); } template<> float jus::Future::get() { if (m_data == nullptr) { return 0.0f; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return 0.0f; } return m_data->m_returnData.getAnswer(); } template<> std::string jus::Future::get() { if (m_data == nullptr) { return ""; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return ""; } return m_data->m_returnData.getAnswer(); } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> std::vector jus::Future>::get() { std::vector out; if (m_data == nullptr) { return out; } if (m_data->m_returnData.getType() != jus::Buffer::typeMessage::answer) { JUS_WARNING("No Return value ..."); return out; } out = m_data->m_returnData.getAnswer>(); return out; } template<> jus::File jus::Future::get() { jus::File out; if (m_data == nullptr) { return out; } /* TODO : ... ejson::Value val = m_data->m_returnData["return"]; if (val.exist() == false) { JUS_WARNING("No Return value ..."); return out; } if (val.isObject() == false) { JUS_WARNING("Wrong return Type get '" << val.getType() << " instead of 'Object'"); return out; } ejson::Object retVal = val.toObject(); if (retVal["type"].toString().get() != "file") { JUS_WARNING("Wrong return object-type get '" << retVal["type"].toString().get() << " instead of 'file'"); return out; } out.setMineType(retVal["mine-type"].toString().get()); out.preSetDataSize(retVal["size"].toNumber().getU64()); // no data might be stored in the first packet ... uint64_t offset = 0; // TODO: check part ID for (auto &it : m_data->m_returnDataPart) { ejson::String valData = it.toString(); std::vector tmpData = ejson::base64::decode(valData.get()); out.setData(offset, tmpData); offset += tmpData.size(); } */ return out; } }