input/InputStream: migrate from class Error to C++ exceptions

This commit is contained in:
Max Kellermann
2016-09-09 18:47:42 +02:00
parent 597e59f10d
commit 8c744efd56
64 changed files with 440 additions and 473 deletions

View File

@@ -43,25 +43,21 @@ ExpatParser::Parse(const char *data, size_t length, bool is_final)
throw ExpatError(parser);
}
bool
ExpatParser::Parse(InputStream &is, Error &error)
void
ExpatParser::Parse(InputStream &is)
{
assert(is.IsReady());
while (true) {
char buffer[4096];
size_t nbytes = is.LockRead(buffer, sizeof(buffer), error);
size_t nbytes = is.LockRead(buffer, sizeof(buffer));
if (nbytes == 0)
break;
Parse(buffer, nbytes, false);
}
if (error.IsDefined())
return false;
Parse("", 0, true);
return true;
}
const char *

View File

@@ -66,7 +66,7 @@ public:
void Parse(const char *data, size_t length, bool is_final);
bool Parse(InputStream &is, Error &error);
void Parse(InputStream &is);
gcc_pure
static const char *GetAttribute(const XML_Char **atts,
@@ -97,8 +97,8 @@ public:
parser.Parse(data, length, is_final);
}
bool Parse(InputStream &is, Error &error) {
return parser.Parse(is, error);
void Parse(InputStream &is) {
parser.Parse(is);
}
gcc_pure