/* Copyright (C) 2019 * * This file is part of the osdev components suite * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include "mqtttypeconverter.h" // std #include // boost #include #include // date #include "date.h" #include "stringutils.h" using namespace osdev::components::mqtt; namespace osdev { namespace components { namespace mqtt { namespace MqttTypeConverter { std::string toStdString(const MqttId& mqttId) { return boost::lexical_cast(mqttId); } MqttId toMlogicId(const std::string& mqttId) { return boost::lexical_cast(mqttId); } StdTime toStdTime(const time_t& posixTime) { return std::chrono::system_clock::from_time_t(posixTime); } time_t toPosixTime(const StdTime& stdTime) { return std::chrono::system_clock::to_time_t(stdTime); } OptionalTime toOptionalTime(const std::string& posixTimeString) { static const OptionalTime nonExisting; try { auto lotPosixTime = boost::lexical_cast(posixTimeString); return toStdTime(lotPosixTime); } catch (const boost::bad_lexical_cast&) { return nonExisting; } } std::string toShortGuidAppendedString(const std::string& str, const MqttId& mqttId) { std::string idStr = toStdString(mqttId); return str + "-" + idStr.substr(0, 4); } } // End namespace MqttTypeConverter } // End namespace mqtt } // End namespace components } // End namespace osdev