//
// error_code.hpp
//
// Copyright (c) 2019 2020 Andrea Bondavalli. All rights reserved.
//
// 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 3 of the License, or
// 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, see .
//
#ifndef _ERROR_CODE_HPP_
#define _ERROR_CODE_HPP_
#include
// Driver errors
enum class DriverErrc {
unknown = 10, // unhandled code from driver
invalid_data_size = 11, // driver -315 invalid data size
invalid_value = 12, // driver -815 invalid value specified
command_failed = 13, // driver -401 command failed
command_not_found = 14, // driver -404 command not found
unknown_command = 15, // driver -314 unknown command
invalid_daemon_response = 16, // driver -303 invalid daemon response
invalid_daemon_response_size = 17 // driver -302 invalid daemon response
};
namespace std {
template <>
struct is_error_code_enum : true_type {};
} // namespace std
std::error_code make_error_code(DriverErrc);
std::error_code get_driver_error(int code);
// Daemon errors
enum class DaemonErrc {
invalid_stream_id = 40, // daemon invalid stream id
stream_id_in_use = 41, // daemon stream id is in use
stream_id_not_in_use = 42, // daemon stream not in use
invalid_url = 43, // daemon invalid URL
cannot_retrieve_sdp = 44, // daemon cannot retrieve SDP
cannot_parse_sdp = 45, // daemon cannot parse SDP
stream_name_in_use = 46, // daemon source or sink name in use
cannot_retrieve_mac = 47, // daemon cannot retrieve MAC for IP
streamer_invalid_ch = 48, // daemon streamer sink channel not captured
streamer_retry_later = 49, // daemon streamer not enough samples buffered
streamer_not_running = 50, // daemon streamer not running
send_invalid_size = 60, // daemon data size too big for buffer
send_u2k_failed = 61, // daemon failed to send command to driver
send_k2u_failed = 62, // daemon failed to send event response to driver
receive_u2k_failed = 63, // daemon failed to receive response from driver
receive_k2u_failed = 64, // daemon failed to receive event from driver
invalid_driver_response = 65 // unexpected driver command response code
};
namespace std {
template <>
struct is_error_code_enum : true_type {};
} // namespace std
std::error_code make_error_code(DaemonErrc);
#endif