InputStream: add static method OpenReady()

Merge some duplicate code.
This commit is contained in:
Max Kellermann
2013-12-29 18:08:49 +01:00
parent ea9aff1d3f
commit aeb2baa495
11 changed files with 47 additions and 62 deletions

View File

@@ -92,7 +92,7 @@ int main(int argc, char **argv)
if (playlist == NULL) {
/* open the stream and wait until it becomes ready */
is = InputStream::Open(uri, mutex, cond, error);
is = InputStream::OpenReady(uri, mutex, cond, error);
if (is == NULL) {
if (error.IsDefined())
LogError(error);
@@ -102,8 +102,6 @@ int main(int argc, char **argv)
return 2;
}
is->LockWaitReady();
/* open the playlist */
playlist = playlist_list_open_stream(*is, uri);

View File

@@ -49,23 +49,6 @@ dump_text_file(TextInputStream &is)
static int
dump_input_stream(InputStream &is)
{
Error error;
is.Lock();
/* wait until the stream becomes ready */
is.WaitReady();
if (!is.Check(error)) {
LogError(error);
is.Unlock();
return EXIT_FAILURE;
}
/* read data and tags from the stream */
is.Unlock();
{
TextInputStream tis(is);
dump_text_file(tis);
@@ -73,6 +56,7 @@ dump_input_stream(InputStream &is)
is.Lock();
Error error;
if (!is.Check(error)) {
LogError(error);
is.Unlock();
@@ -121,7 +105,7 @@ int main(int argc, char **argv)
Mutex mutex;
Cond cond;
InputStream *is = InputStream::Open(argv[1], mutex, cond, error);
InputStream *is = InputStream::OpenReady(argv[1], mutex, cond, error);
if (is != NULL) {
ret = dump_input_stream(*is);
is->Close();

View File

@@ -113,26 +113,13 @@ int main(int argc, char **argv)
Mutex mutex;
Cond cond;
InputStream *is = InputStream::Open(path, mutex, cond,
error);
InputStream *is = InputStream::OpenReady(path, mutex, cond,
error);
if (is == NULL) {
FormatError(error, "Failed to open %s", path);
return EXIT_FAILURE;
}
mutex.lock();
is->WaitReady();
if (!is->Check(error)) {
mutex.unlock();
FormatError(error, "Failed to read %s", path);
return EXIT_FAILURE;
}
mutex.unlock();
success = plugin->ScanStream(*is, print_handler, nullptr);
is->Close();
}

View File

@@ -50,16 +50,6 @@ dump_input_stream(InputStream *is)
is->Lock();
/* wait until the stream becomes ready */
is->WaitReady();
if (!is->Check(error)) {
LogError(error);
is->Unlock();
return EXIT_FAILURE;
}
/* print meta data */
if (!is->mime.empty())
@@ -139,7 +129,7 @@ int main(int argc, char **argv)
Mutex mutex;
Cond cond;
is = InputStream::Open(argv[1], mutex, cond, error);
is = InputStream::OpenReady(argv[1], mutex, cond, error);
if (is != NULL) {
ret = dump_input_stream(is);
is->Close();