MPD
0.20.15
protocol
Ack.hxx
Go to the documentation of this file.
1
/*
2
* Copyright 2003-2017 The Music Player Daemon Project
3
* http://www.musicpd.org
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
#ifndef MPD_ACK_H
21
#define MPD_ACK_H
22
23
#include <stdexcept>
24
25
#include <stdio.h>
26
27
class
Domain
;
28
29
enum
ack
{
30
ACK_ERROR_NOT_LIST
= 1,
31
ACK_ERROR_ARG
= 2,
32
ACK_ERROR_PASSWORD
= 3,
33
ACK_ERROR_PERMISSION
= 4,
34
ACK_ERROR_UNKNOWN
= 5,
35
36
ACK_ERROR_NO_EXIST
= 50,
37
ACK_ERROR_PLAYLIST_MAX
= 51,
38
ACK_ERROR_SYSTEM
= 52,
39
ACK_ERROR_PLAYLIST_LOAD
= 53,
40
ACK_ERROR_UPDATE_ALREADY
= 54,
41
ACK_ERROR_PLAYER_SYNC
= 55,
42
ACK_ERROR_EXIST
= 56,
43
};
44
45
extern
const
Domain
ack_domain
;
46
47
class
ProtocolError
:
public
std::runtime_error {
48
enum
ack
code;
49
50
public
:
51
ProtocolError
(
enum
ack
_code,
const
char
*msg)
52
:std::runtime_error(msg), code(_code) {}
53
54
enum
ack
GetCode
()
const
{
55
return
code;
56
}
57
};
58
59
template
<
typename
... Args>
60
static
inline
ProtocolError
61
FormatProtocolError
(
enum
ack
code,
const
char
*
fmt
, Args&&... args) noexcept
62
{
63
char
buffer[256];
64
snprintf(buffer,
sizeof
(buffer),
fmt
, std::forward<Args>(args)...);
65
return
ProtocolError
(code, buffer);
66
}
67
68
#endif
ACK_ERROR_PLAYER_SYNC
Definition:
Ack.hxx:41
ack
ack
Definition:
Ack.hxx:29
ACK_ERROR_ARG
Definition:
Ack.hxx:31
ACK_ERROR_PLAYLIST_MAX
Definition:
Ack.hxx:37
ACK_ERROR_PASSWORD
Definition:
Ack.hxx:32
ACK_ERROR_NO_EXIST
Definition:
Ack.hxx:36
ack_domain
const Domain ack_domain
ProtocolError::ProtocolError
ProtocolError(enum ack _code, const char *msg)
Definition:
Ack.hxx:51
ACK_ERROR_NOT_LIST
Definition:
Ack.hxx:30
ProtocolError::GetCode
enum ack GetCode() const
Definition:
Ack.hxx:54
Domain
Definition:
Domain.hxx:33
ProtocolError
Definition:
Ack.hxx:47
ACK_ERROR_PLAYLIST_LOAD
Definition:
Ack.hxx:39
ACK_ERROR_SYSTEM
Definition:
Ack.hxx:38
ACK_ERROR_UPDATE_ALREADY
Definition:
Ack.hxx:40
ACK_ERROR_EXIST
Definition:
Ack.hxx:42
ACK_ERROR_UNKNOWN
Definition:
Ack.hxx:34
fmt
const char * fmt
Definition:
Client.hxx:231
ACK_ERROR_PERMISSION
Definition:
Ack.hxx:33
FormatProtocolError
static ProtocolError FormatProtocolError(enum ack code, const char *fmt, Args &&... args) noexcept
Definition:
Ack.hxx:61
Generated on Thu Jan 11 2018 20:45:12 for MPD by
1.8.14