This file is indexed.

/usr/include/Arcus/Error.h is in libarcus-dev 3.1.0-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
 * This file is part of libArcus
 *
 * Copyright (C) 2016 Ultimaker b.v. <a.hiemstra@ultimaker.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License v3.0 as published
 * by the Free Software Foundation, either version 3 of the License, 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 Lesser General Public License v3.0 for more details.
 * You should have received a copy of the GNU Lesser General Public License v3.0
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef ARCUS_ERROR_H
#define ARCUS_ERROR_H

#include "ArcusExport.h"
#include "Types.h"

namespace Arcus
{
    /**
     * Possible error codes.
     */
    namespace ErrorCode
    {
        // Note: Not using enum class due to incompatibility with SIP.
        enum ErrorCode
        {
            UnknownError, ///< An unknown error occurred.
            CreationError, ///< Socket creation failed.
            ConnectFailedError, ///< Connection failed.
            BindFailedError, ///< Bind to IP and port failed.
            AcceptFailedError, ///< Accepting an incoming connection failed.
            SendFailedError, ///< Sending a message failed.
            ReceiveFailedError, ///< Receiving a message failed.
            UnknownMessageTypeError, ///< Received a message with an unknown message type.
            ParseFailedError, ///< Parsing the received message failed.
            ConnectionResetError, ///< The connection was reset by peer.
            MessageRegistrationFailedError, ///< Message registration failed.
            InvalidStateError, ///< Socket is in an invalid state.
            InvalidMessageError, ///< Message being handled is a nullptr or otherwise invalid.
            Debug, //Debug messages
        };
    }

    /**
     * A class representing an error with an error code and an error message.
     */
    class ARCUS_EXPORT Error
    {
    public:
        /**
         * Default constructor.
         */
        Error();
        /**
         * Create an error with an error code and error message.
         */
        Error(ErrorCode::ErrorCode error_code, const std::string& error_message);


        /**
         * Get the error code of this error.
         */
        ErrorCode::ErrorCode getErrorCode() const;
        /**
         * Get the error message.
         */
        std::string getErrorMessage() const;
        /**
         * Is this error considered a fatal error?
         */
        bool isFatalError() const;
        /**
         * Is this error valid?
         */
        bool isValid() const;
        /**
         * The error code as reported by the platform.
         */
        int getNativeErrorCode() const;
        /**
         * Set whether this should be considered a fatal error.
         */
        void setFatalError(bool fatal);
        /**
         * Set the native error code, if any.
         */
        void setNativeErrorCode(int code);
        /**
         * Convert the error to a string that can be printed.
         */
        std::string toString() const;

    private:
        ErrorCode::ErrorCode _error_code;
        std::string _error_message;
        bool _fatal_error;
        int _native_error_code;
    };
}

// Output the error to a stream.
ARCUS_EXPORT std::ostream& operator<<(std::ostream& stream, const Arcus::Error& error);

#endif //ARCUS_ERROR_H