Rosen Penev
44378b7dbe
use structured binding declarations
...
Shorter.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-04 20:28:02 +01:00
Max Kellermann
995aafe9cc
protocol: add command "binarylimit"
...
Increasing the protocol version to 0.22.4 to allow clients to detect
this feature.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1038
2021-01-21 17:17:10 +01:00
Max Kellermann
2a8c420cff
client/Response: add printf
attribute
2021-01-20 20:43:16 +01:00
Max Kellermann
5348f8c9c8
copyright year 2021
2021-01-01 19:54:28 +01:00
Max Kellermann
eeb96eb367
event/TimerEvent: add type alias for std::chrono::steady_clock::duration
2020-10-08 20:48:50 +02:00
Rosen Penev
e4dad42ca1
use std chr functions
...
The ones in std have overloads for const char/char.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-05-30 13:36:53 +02:00
Max Kellermann
e0edf0b206
meson.build: move VERSION and others to Version.h
2020-05-05 15:12:11 +02:00
Rosen Penev
2db8bcc353
replace stddef.h with cstddef
...
The former is deprecated with C++14. The standard says both are the same:
The contents and meaning of the header<cstddef>are the same as the C
standard library header<stddef.h>,except that it does not declare the type
wchar_t, that it also declares the type byte and its associated
operations (21.2.5), and as noted in 21.2.3 and 21.2.4.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-12 19:04:38 -07:00
Rosen Penev
c846ee0d1b
replace stdarg.h with cstdarg
...
The former was deprecated in C++14. The Standard says they are the same:
The contents of the header<cstdarg>are the same as the C standard library
header<stdarg.h>, with the following changes: The restrictions that ISO C
places on the second parameter to the va_start macro in header<stdarg.h>
are different in this International Standard. The parameter parmN is the
rightmost parameter in the variable parameter list of the function
definition (the one just before the...).219If the parameter parmN is a
pack expansion (17.5.3) or an entity resulting from a lambda capture
(8.1.5), the program is ill-formed, no diagnostic required. If the
parameter parmN is of a reference type, or of a type that is not
compatible with the type that results when passing an argument for which
there is no parameter, the behavior is undefined.
Also changed va_list to the std:: namespace version, which is the same.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-12 19:03:12 -07:00
Rosen Penev
ab9f5d2067
replace assert.h with cassert
...
The former was deprecated with C++14.
According to the C++11 and C++17 standards, both files are identical.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-12 15:25:38 -07:00
Max Kellermann
2229e86673
client/Expire: cancel the BackgroundCommand before deleting it
...
Fixes assertion failure.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/774
2020-03-12 20:32:08 +01:00
Max Kellermann
f24c274f5c
client/BackgroundCommand: fix typo in comment
2020-03-12 20:32:07 +01:00
Rosen Penev
ac50bb5d2b
[clang-tidy] remove needless std::move
...
Found with performance-move-const-arg
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-02-20 16:47:34 +01:00
Max Kellermann
72ec641f0d
*: use auto
2020-02-01 14:02:43 +01:00
Max Kellermann
49309b419f
Partition: add a local idle_monitor
...
Make idle events per-partition, but leave Instance::EmitIdle() and its
underlying idle_monitor which broadcasts idle events to all
partitions.
2020-01-20 13:33:01 +01:00
Max Kellermann
56eaf000a4
Partition: add client list
...
For efficient traversal within one partition, e.g. for distributing
partition-local idle events.
2020-01-20 13:16:13 +01:00
Max Kellermann
438a6d7595
client/Client: make several getter methods const
2020-01-20 12:47:57 +01:00
Max Kellermann
ac126ede22
client/Client: emit idle flags in SetPartition()
2020-01-18 22:21:27 +01:00
Max Kellermann
2817bf9e95
copyright year 2020
2020-01-18 19:23:49 +01:00
Max Kellermann
c9081a206a
client/New: fix assertion failure in Close()
...
Caused by a revert accident in commit
f2cdbeace6
Closes https://github.com/MusicPlayerDaemon/MPD/issues/631
2019-08-22 14:43:53 +02:00
Max Kellermann
f2cdbeace6
Revert "Client: eliminate SetExpired(), call Close() directly"
...
This reverts commit 58d7804d66
. It
caused a use-after-free bug when Client::OnSocketError() was called
due to a failed write, e.g. if the output buffer was full.
2019-08-22 09:52:19 +02:00
Max Kellermann
4f61cd0b93
client/Response: add constant MAX_BINARY_SIZE
...
Use the same chunk size for all binary commands.
2019-08-12 20:23:46 +02:00
Max Kellermann
989790e7f1
client/Response: add method WriteBinary()
...
Move code from read_stream_art().
2019-08-12 14:17:35 +02:00
Max Kellermann
d663f81420
include cleanups (powered by iwyu)
2019-07-05 09:59:58 +02:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
0b4e7b3317
client/List: use using
instead of typedef
2019-05-29 21:36:27 +02:00
Max Kellermann
472e4bfd41
client/List: fold CloseAll() into destructor
2019-05-29 21:33:22 +02:00
Max Kellermann
d3d70a7eed
client/List: use auto
2019-05-29 21:31:43 +02:00
Max Kellermann
17dd334b82
client/ThreadBackgroundCommand: fix inverted check
2019-04-05 14:23:35 +02:00
Max Kellermann
9f1c23e217
client/BackgroundCommand: infrastructure for commands running in background
2019-04-05 11:18:15 +02:00
Max Kellermann
58d7804d66
Client: eliminate SetExpired(), call Close() directly
2019-04-04 10:37:38 +02:00
Max Kellermann
c1272c72b0
client/Process: reset the CommandListBuilder before processing it
...
Allows removing a CommandResult::CLOSE check.
2019-04-03 22:38:26 +02:00
Max Kellermann
7d1db5c19f
client/Process: refactor IsExpired() checks
2019-04-03 22:31:49 +02:00
Max Kellermann
2142d070a3
client/Process: refactor return
statements
2019-04-03 22:30:38 +02:00
Max Kellermann
9711cee26d
client/Process: update code comment
2019-04-03 22:30:18 +02:00
Max Kellermann
39baa4e364
client/Process: more strict syntax check
2019-04-03 22:29:43 +02:00
Max Kellermann
f339a53e3c
client/Process: move basic syntax check to the beginning of method
...
This catches lines within command lists as well.
2019-04-03 22:27:41 +02:00
Max Kellermann
d9117a272b
client/Response: use C++11 initializer
2019-04-03 21:53:20 +02:00
Max Kellermann
3f05b7d8b4
client/New: include cleanup
2019-04-03 21:41:52 +02:00
Max Kellermann
1d563700a4
client/File: include cleanup
2019-04-03 21:40:12 +02:00
Max Kellermann
def6b936c8
client/Response: add noexcept
2019-04-03 21:38:09 +02:00
Max Kellermann
3610f55479
client/Write: add noexcept
2019-04-03 21:37:38 +02:00
Max Kellermann
6db84852ae
client/Listener: add noexcept
2019-04-03 21:36:02 +02:00
Max Kellermann
41dc36ba92
client/List: add noexcept
2019-04-03 21:34:53 +02:00
Max Kellermann
fe32db17d7
client/Internal: rename to Config.hxx
2019-04-03 21:31:32 +02:00
Max Kellermann
772aa4f165
client/Internal: move CLIENT_MAX_* to class Client
2019-04-03 21:28:46 +02:00
Max Kellermann
38298e0cd8
client/Internal: move client_domain to Domain.hxx
2019-04-03 21:26:16 +02:00
Max Kellermann
1213d979f8
client/*: rename source files, remove "Client" prefix
2019-04-03 20:59:00 +02:00
Max Kellermann
a9cb12b745
Client: make almost all attributes private
2019-04-03 20:16:08 +02:00
Max Kellermann
380f73c112
client/Process: convert functions to Client methods
2019-04-03 20:04:59 +02:00