// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #pragma once #include "Urc.hpp" namespace at::urc { /// +QIURC: ,[p1], [p2] - multipurpose URC information (in general for TCP connection) class Qiurc : public Urc { /** * In general could be at last one param in +QIURC: "incoming full" * to such with CR LF messages contain data +QIURC: * "recv",,,, */ enum Tokens { Type = 0, FirstParam = 1 }; public: enum class QIUrcMessages { DeactivateContext = 1 }; static constexpr auto qiurcPdpdeact = "pdpdeact"; ///< +QIURC:"pdpdeact", static constexpr auto qiurcPdpdeactCount = 2; static constexpr auto head = "+QIURC"; static bool isURC(const std::string &uHead) { return uHead.find(Qiurc::head) != std::string::npos; } using Urc::Urc; [[nodiscard]] auto isValid() const noexcept -> bool override; [[nodiscard]] auto getType() const noexcept -> std::optional; [[nodiscard]] auto getFirstParam() const noexcept -> std::optional; void Handle(UrcHandler &h) final { h.Handle(*this); } }; } // namespace at::urc