Max Kellermann
9f246fc0dc
archive/Lookup: use PathTraitsFS::pointer_type
2019-06-11 19:42:16 +02:00
Max Kellermann
120e570da7
archive/Domain: remove unused library
2019-06-04 17:54:59 +02:00
Max Kellermann
0019231a37
archive/Lookup, input/Archive: remove useless log messages
2019-06-04 17:54:35 +02:00
Max Kellermann
e1ac377812
archive/ArchiveLookup: replace output parameters with a struct
2019-05-31 19:56:25 +02:00
Max Kellermann
7866d1a005
archive/meson.build: move ArchiveLookup.cxx to archive_glue.a
...
Fixes the Windows build.
2019-05-31 19:56:13 +02:00
Max Kellermann
0e8ca44968
archive/List: disallow passing suffix==nullptr to archive_plugin_from_suffix()
2019-05-31 19:05:26 +02:00
Max Kellermann
12e75a523a
archive/ArchiveLookup: remove "suffix" output parameter
...
Let the caller do this. Our GetSuffix() function was broken anyway.
2019-05-31 19:01:22 +02:00
Max Kellermann
508ba22789
archive/ArchiveLookup: use class FileInfo
2019-05-31 18:55:27 +02:00
Max Kellermann
fa13648f2c
archive/ArchiveLookup: throw on error
2019-05-31 18:52:11 +02:00
Max Kellermann
2f83ed90d0
archive/iso9660: implement seeking
2019-05-31 18:40:24 +02:00
Max Kellermann
971450f0d4
input/InputStream: make IsEOF() and IsAvailable() const
2019-05-29 13:31:54 +02:00
Max Kellermann
0a0cc66e8f
thread/Mutex: use using
instead of making it a derived class
...
Prepare the transition to std::mutex.
2019-05-07 19:23:01 +02:00
Max Kellermann
1b5c1f75a4
input/InputStreams: pass std::unique_lock<> to various methods
2019-05-07 19:09:39 +02:00
Max Kellermann
c9ba4f3f9c
archive/List: add RAII class
2019-02-05 21:40:07 +01:00
Max Kellermann
c0e9246a66
archive/List: add noexcept
2019-02-05 21:38:46 +01:00
Max Kellermann
ce49d99c2f
check.h: remove obsolete header
...
Since we switched from autotools to Meson in commit
94592c1406
, we don't need to include
`config.h` early to properly enable large file support. Meson passes
the required macros on the compiler command line instead of defining
them in `config.h`.
This means we can include `config.h` at any time, whenever we want to
check its macros, and there are no ordering constraints.
2018-11-19 16:33:49 +01:00
Max Kellermann
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
Max Kellermann
94592c1406
build with Meson instead of autotools
...
So long, autotools! This is my last MPD related project to migrate
away from it. It has its strengths, but also very obvious weaknesses
and weirdnesses. Today, many of its quirks are not needed anymore,
and are cumbersome and slow. Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Max Kellermann
d0fbf6db59
input/Stream: remove attribute "cond", replace with handler interface
...
This adds a bit of overhead, but also adds flexibility to the API,
because arbitrary triggers may be invoked from that virtual method
implementation, not just Cond::signal().
The motivation for this is to make the handlers more dynamic, for the
upcoming buffering class utilizing ProxyInputStream.
2018-06-22 19:37:18 +02:00
Max Kellermann
250b6a3d52
release v0.20.16
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlp2BjEQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEl0HEACEOGoX3a8slWwuPsqdOu+thc73SIMVzqF9
xzxFbGLyp0MzXTAgU+SLzfbD4/gerglC7TRbGzsvVu7iwxXeKhEL/SJ5RhrCQM3E
U8jaOeavMWeqX60pdbTz2zw4maKAD7U3fWcYxoh09EBaZa7Mm/j7URPLqrlWT7VD
iWqdLcC4HZarOxBbq0CY7rQPVsAVZZ5l43MDV6hiInSn0wWo783G6BtYFgvgH8qk
pZIL0yScQrjyj9D0fgfDC9DBVfHqMqpWW5G2rNhsXTUtpdb9V5tB2B8ZbIUWJfD7
aVFztCwwmbiBle4UBHfyyDLfZkBZmU/qKc9+I3WUxT4DLbA8gDXZFjb7zU80NMge
xzbXeO7XvxvSm7groqRh3Vy0nbkBMB9wTwzre3ULhYyhY2vVISb9lSyRtUE9xuR8
SL2zpdgVcFdTUSKat63ikeU4sbYvssra3ZDRnAyoFF2iVpT2J2B95ZVNfaIYbRSQ
lidlz8q3Px5GUDe3D0ao3hFk5t1Hg2jXx3nbz/Kk+SwZpsaiCewl6zjptye7R7zD
e9OMxYrU+/opsynRE5NFuTvkRKUG1kC47/rWgGZWI9Cbv8+lse1NO0c7VzM7o1hH
Bfk5AhEkv8tLNM+39evXdNQVB0cna5ndSDOkYBcPI78/PUNd+TnrPdfI/W3NCnRl
I+CWQE3uSQ==
=+tJ2
-----END PGP SIGNATURE-----
Merge tag 'v0.20.16'
release v0.20.16
2018-02-03 19:59:29 +01:00
Max Kellermann
12fd1cad0c
archive/iso9660: libcdio 2.0 compatibility
...
Closes #173
2018-02-03 19:32:31 +01:00
Max Kellermann
2e0949d8e6
archive/Plugin: return std::unique_ptr<ArchiveFile>
2017-12-27 09:07:21 +01:00
Max Kellermann
7bce6329e3
archive/File, input/Plugin: return InputStreamPtr
2017-12-26 20:05:22 +01:00
Max Kellermann
078839c711
archive/zzip: convert struct to class
2017-12-26 11:22:46 +01:00
Max Kellermann
9aec2f019a
archive/File: eliminate Close(), make destructor virtual instead
2017-12-22 16:30:17 +01:00
Max Kellermann
5da455080b
archive/iso9660: use std::shared_ptr instead of class RefCount
2017-12-22 16:25:08 +01:00
Max Kellermann
17558102f2
archive/zzip: use std::shared_ptr instead of class RefCount
2017-12-22 16:20:05 +01:00
Max Kellermann
e1c39f3fdc
archive/bz2: use std::shared_ptr instead of class RefCount
2017-12-22 16:14:12 +01:00
Max Kellermann
20555c8e37
archive/File: remove unused attribute "plugin"
2017-12-22 16:13:29 +01:00
Max Kellermann
d094c168aa
archive/{iso9660,zzip}: unlock the mutex during I/O
...
Similar to commit 31ab78ae8e
2017-12-22 16:09:03 +01:00
Max Kellermann
4b18460bc6
archive/bz2: unlock the archive mutex and lock the file mutex
...
Fixes deadlock because FileInputStream::Read() unlocks the mutex
(which was not locked) and then locks it, keeping it locked. This can
result in a deadlock. This happens because the archive and the file
mutex are different.
2017-12-22 16:02:23 +01:00
Max Kellermann
71f0ed8b74
*: add "noexcept" to many, many function prototypes
...
This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
2017-05-08 14:44:49 +02:00
Max Kellermann
5900253b85
update copyright year
2017-01-03 20:48:59 +01:00
Max Kellermann
8c744efd56
input/InputStream: migrate from class Error to C++ exceptions
2016-09-16 17:43:36 +02:00
Max Kellermann
220d9528a3
archive/Plugin: migrate open() from class Error to C++ exceptions
2016-09-09 18:36:36 +02:00
Max Kellermann
fc7d3f64c0
input/Plugin: migrate open() from class Error to C++ exceptions
2016-09-09 18:15:01 +02:00
Max Kellermann
e4c7e343c8
util/StringUtil: use CamelCase
2016-06-10 22:08:13 +02:00
Max Kellermann
6ff01cc72c
Merge branch 'v0.19.x'
2016-03-07 14:30:43 +01:00
Max Kellermann
e140a28073
archive/iso9660: check path buffer bounds
2016-03-07 14:21:01 +01:00
Max Kellermann
de61c3b962
archive/iso9660: use a single path buffer for Visit()
...
Avoid wasting 4 kB stack per directory level.
2016-03-07 14:01:52 +01:00
Max Kellermann
c46fc4531b
archive/iso9660: move the "." and ".." checks up
2016-03-07 14:01:40 +01:00
Max Kellermann
065a9ed10f
archive/iso9660: add local variable "filename"
2016-03-07 13:57:07 +01:00
Max Kellermann
e44c0254f7
archive/iso9660: make variables more local
2016-03-07 13:15:07 +01:00
Max Kellermann
1aee89f5ea
*: include cleanup (using iwyu)
2016-03-01 22:08:13 +01:00
Max Kellermann
1d67aa7bf2
update copyright year to 2016
2016-02-26 17:54:05 +01:00
Max Kellermann
d67c6c37e3
archive/bzip2: remove HAVE_OLDER_BZIP2 check
...
The check was added in commit 98fd9b7d
, but there was never a
definition.
2016-02-21 13:19:00 +01:00
Max Kellermann
136725dfb1
archive/bzip2: convert struct to class
2016-02-21 13:18:25 +01:00
Max Kellermann
438895842c
archive/bzip2: move bz2_fillbuffer into struct Bzip2InputStream
2016-02-21 13:17:22 +01:00
Max Kellermann
82b8f4f1ce
archive/bzip2: use C++11 initializer
2016-02-21 13:16:27 +01:00
Max Kellermann
cadc67ea40
input: wrap InputStream in std::unique_ptr
2016-02-21 08:03:32 +01:00
Max Kellermann
1c90b0c19d
*: change C-style prototypes, drop "(void)"
2015-03-03 20:05:08 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
8fab855099
configure.ac: remove redundant declaration "HAVE_ISO9660"
2014-12-22 10:19:13 +01:00
Max Kellermann
0f0245625a
configure.ac: add macro MPD_ENABLE_AUTO_LIB
2014-12-09 21:19:09 +01:00
Max Kellermann
b227fddec7
fs/Path: add methods GetBase() and GetDirectoryName()
2014-12-02 06:45:57 +01:00
Max Kellermann
737a56a030
release v0.19.5
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUdiYnAAoJECNuiljG20USDB4P/3RGHBV5XgdInmYKjGg89hex
YRiy3BVvrBri53wkj+3YwOi05Cx0fp0pCuwQ9Nm7bmPCwfdC3ASF+UBlBBhnLdfc
dlISXDHciuKDJwiTtTlBvaKCENoZhjAJQ1SOa5zceH7j/V/XbY0FauHCeE8Ek7ht
KjimIt1ft0mdgsGNfyisdfbnh/3r4T9V9tBs/wnr7oDTYS/eUX8vCDr5qYIZipjx
W6pug2m4nfDtHYtN5gv53WYCIm7MiXo9vh7hCjJHd3T3xqKwdWVuz5RRcZcgd9yT
WWlzOKAI1cgmU7rZaV6Gu+tAq9g7MpNLOGoeN6mhH9E8V16rKqvCiLaXMK5wEGs9
JWGsTBcbTnSCdG1iivJtP2kOGVHXvNthbSunzwmbowMATi6xIBm8AoqidSzCaW1F
C7mss8VlhkHdCtHTvyK3XCE2wGEbx4OfsfsL3PWBonrs0DpNOR2AqWQYLsZUhbff
RV7aeyphMVvgLP67cT9YnGswKGEPOqP2EO9Mh51AQ7wiUESZ+O5J9YHWCc0E3SML
qs9A+lpA8fstj0QJewx/HNofiHXw5A2THjs/BVqs3vYkcHnTI94Nmdxps82r/rEA
oy9d6nQqglkPJZF3JwHqJMj1VtBIhihaHBpnLeyegjtiajZV6mVNVg9ezt9EpEA6
OjJFh2xzQJ7w5qL0gy2R
=1kbY
-----END PGP SIGNATURE-----
Merge tag 'v0.19.5'
2014-11-26 20:19:17 +01:00
Max Kellermann
27ce80544f
release v0.18.19
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUdiMjAAoJECNuiljG20USjnMP/jQl/aIEiUwbwqq1F8+0wlFh
lX5xix5+7QuvTH2Lw5brNSRdVRsHGGeDqVcSi1zY4tgNXK/EBmS1mDVKWQO5qJd9
v+ueDRr7xI3HFECe0J7h2Q5GGD/YkeSyjB2k7C7I7t1axukLOXbP+qVyz6/d1azZ
SkUKKmIUD4KdJuDWy34JYYiltGl94JNyTBvC+jJV4Mbg2qd7XV6MSvJipiK6aM05
UsEza9bF/jG2aHL/xtR+dEnNLAoFoZ/h1RqUoYw4DLEKxfip+E3MD4sEx6Sg8XSv
v2rZQrMhl2LvJkwCjo57KrJ4YmHK0U3zg3ElDefqRsW4J10x5d3hhOINJPpHUpyZ
T5RvoDCJ5BL+6wg0tA57338pNydSBQDV5+WjI9+vD8ahnZlFgjY+OoJDxkxtFlYz
pLazEQbkUWlU62ZGW/dVpwgYInalNH9ZTrvelwXtGmwMfLhp01S4DHX3ipFgmMGd
do3x/FoVRyOnFWQPotga3+ZoARqmXhfQ70DqESoajBHeLTzYBs9vh+fw6y1iVeGb
rIBEIyMPlyuPt+2NrLflo6o0VMYB8MV3nh3P3DX8Ywavae3+k4WPGx2w/MEM34lF
sWUDXfZeCwJ5rrXeyP/s2C9ZmJ+Bm6WlxQ0gUZXMtrfDShPBY8gHzGi4m3ooslde
OZCIokCaATDa9Fp6CRD8
=I9PV
-----END PGP SIGNATURE-----
Merge tag 'v0.18.19' into v0.19.x
2014-11-26 20:02:57 +01:00
Max Kellermann
a254f5a3a8
archive/zzip: fix inverted error handler
...
Set the Error when zzip_seek()==-1 and not on success. Fixes a crash
after seeking.
2014-11-24 22:08:50 +01:00
Max Kellermann
b3f5b4932c
configure.ac: add macro MPD_ENABLE_AUTO_PKG
...
Simplify the definition of many build options.
2014-11-21 22:19:57 +01:00
Max Kellermann
8302ed44aa
archive/bzip2: use OpenLocalInputStream()
2014-10-02 22:00:42 +02:00
Max Kellermann
dfa53cb88e
InputPlugin: remove typedef offset_type
...
Has been moved to class InputStream long ago.
2014-08-19 21:22:23 +02:00
Max Kellermann
07b93dcf80
InputStream: make Seek() always absolute
...
Remove the "whence" parameter that is not actually necessary, and only
complicates the InputStream implementations.
2014-05-22 13:52:00 +02:00
Max Kellermann
fd1b04932a
InputStream: remove attribute "plugin"
2014-05-11 18:25:55 +02:00
Max Kellermann
d4b625b48e
InputStream: make various methods abstract
...
Replace InputPlugin attributes.
2014-05-11 17:14:49 +02:00
Max Kellermann
82337dec44
InputStream: add virtual destructor
...
Replaces the method Close().
2014-05-11 17:12:50 +02:00
Max Kellermann
f1d0700252
input/plugins: make InputStream the base class
...
Prepare for adding virtual methods.
2014-05-11 17:12:50 +02:00
Max Kellermann
6773adc771
InputStream: convert to class
2014-05-11 15:34:48 +02:00
Max Kellermann
fe7c6fee34
ArchivePlugin: pass Path to open()
2014-02-08 13:25:44 +01:00
Max Kellermann
9906daeca7
ArchivePlugin: rename struct archive_plugin to ArchivePlugin
2014-02-08 13:22:13 +01:00
Max Kellermann
f8bfea8bae
Input*: move to input/
2014-01-24 16:33:33 +01:00
Max Kellermann
4aa6d39fd8
archive/*: move to archive/plugins/
2014-01-24 00:09:37 +01:00
Max Kellermann
4f83c60296
copyright year 2014
2014-01-13 22:31:55 +01:00
Max Kellermann
aeb2baa495
InputStream: add static method OpenReady()
...
Merge some duplicate code.
2013-12-29 18:08:49 +01:00
Denis Krjuchkov
0a6c4c31b2
fs/Traits: split PathTraits type into PathTraitsFS and PathTraitsUTF8
2013-12-05 03:53:43 +06:00
Max Kellermann
f90abe9530
include cleanup using iwyu
2013-11-28 11:50:54 +01:00
Max Kellermann
394b1e6351
archive/iso9660: remove pointless formula
2013-11-24 22:49:15 +01:00
Max Kellermann
c95d068ef5
archive/iso9660: use reference instead of pointer
2013-11-24 22:47:50 +01:00
Max Kellermann
dbda35ffe1
archive/iso9660: convert structs to classes
2013-11-24 22:41:23 +01:00
Max Kellermann
75e9c798e0
archive/iso9660: simplify _read()
2013-11-23 18:51:38 +01:00
Max Kellermann
ae88ba986e
archive/iso9660: eliminate useless assignments
2013-11-23 18:30:12 +01:00
Max Kellermann
93deb84499
input_stream: rename struct to InputStream
2013-10-23 23:12:02 +02:00
Max Kellermann
c4d4011c63
InputInternal: remove obsolete library
2013-10-23 23:10:27 +02:00
Max Kellermann
83c726a34f
GetBaseUTF8
2013-10-21 10:50:22 +02:00
Max Kellermann
a0415f73d4
archive/bz2: remove unused function bz2_quark()
2013-10-21 10:50:22 +02:00
Max Kellermann
59f8144c50
*: use nullptr instead of NULL
2013-10-19 18:19:03 +02:00
Max Kellermann
05de2e998c
InputStream: use int64_t instead of goffset
...
Decouple some more from GLib.
2013-10-17 10:45:10 +02:00
Max Kellermann
24780d99e6
input_plugin: rename struct to "InputPlugin"
2013-10-17 10:20:57 +02:00
Max Kellermann
dbd88e6aef
Client, ...: remove unnecessary glib.h include
2013-10-15 22:51:09 +02:00
Max Kellermann
7d0269d2ce
InputLegacy: move functions to the input_stream class
2013-09-05 00:23:14 +02:00
Max Kellermann
29030b54c9
util/Error: new error passing library
...
Replaces GLib's GError.
2013-09-04 18:14:22 +02:00
Max Kellermann
16afdfd874
ArchivePlugin: move instance methods to class ArchiveFile
2013-01-30 15:30:19 +01:00
Max Kellermann
701fff03d2
archive/bzip2: create file only after stream has been opened
...
Simplify error handling.
2013-01-30 15:27:23 +01:00
Max Kellermann
8e0575ca9b
archive/zzip: fix memory leak
2013-01-30 15:25:29 +01:00
Max Kellermann
f5c0b0d316
ArchiveFile: convert to a class
2013-01-29 23:26:51 +01:00
Max Kellermann
ba51045d9e
refcount: convert to C++
2013-01-29 23:20:19 +01:00
Max Kellermann
9f0fb8f6a8
ArchivePlugin: replace scan_reset(), scan_next() with visit()
...
Add the interface ArchiveVisitor.
2013-01-29 21:21:07 +01:00
Max Kellermann
a42f9fd4e2
ArchivePlugin: scan_next() returns const string
2013-01-29 21:11:04 +01:00
Max Kellermann
dcf55c7e32
InputStream: add constructor/destructor
...
Eliminate input_stream_init() and input_stream_deinit().
2013-01-28 23:29:43 +01:00
Max Kellermann
e39969a0d0
input/iso9660: add constructor/destructor
2013-01-28 22:54:07 +01:00
Max Kellermann
d68185aa28
input/iso9660: rename the classes
2013-01-28 22:52:40 +01:00