~aleteoryx/muditaos

ref: 652fc46c94209f2c58f18bbd359bce3bcabe6748 muditaos/module-cellular/at/Result.hpp -rw-r--r-- 1.2 KiB
652fc46c — Pawel Olejniczak [EGD-5369] Fix for incorrect assertions in DBServiceAPI 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <variant>
#include <string>
#include <vector>

#include <ErrorCode.hpp>

namespace at
{
    struct Result
    {
        /// result class for AT send -> receive command, could return promise :p
        enum class Code
        {
            OK,      // at OK
            ERROR,   // at ERROR
            TIMEOUT, // at Timeout
            TOKENS,  // at numbers of tokens needed met
            NONE,    // no code
        } code = Code::NONE;

        //! Information about Equipment or Network error as variant type
        /*!
         * Example of checking for specific error type
            if (std::holds_alternative<at::EquipmentErrorCode>(errorCode)){
                std::get<at::EquipmentErrorCode>(errorCode);
            }
        */
        std::variant<at::EquipmentErrorCode, at::NetworkErrorCode> errorCode = at::EquipmentErrorCode::NoInformation;

        std::vector<std::string> response;

        explicit operator bool() const
        {
            return code == Code::OK;
        }
    };
} // namespace at