Skip to content
Snippets Groups Projects
Commit 0339d394 authored by Jan Trávníček's avatar Jan Trávníček
Browse files

speedup parsing stdin and composing to stdout

parent d6da4a44
No related branches found
No related tags found
No related merge requests found
......@@ -53,7 +53,9 @@ public:
*/
template<class T>
static T fromStdin() {
return fromStream<T>(std::cin);
std::list<sax::Token> tokens;
sax::SaxParseInterface::parseStdin(tokens);
return fromTokens<T>(tokens);
}
/**
......@@ -62,8 +64,9 @@ public:
*/
template<class T>
static T fromStream(std::istream& in) {
std::string input{std::istreambuf_iterator<char>(in), std::istreambuf_iterator<char>()};
return fromString<T>(input);
std::list<sax::Token> tokens;
sax::SaxParseInterface::parseStream(in, tokens);
return fromTokens<T>(tokens);
}
 
/**
......@@ -122,7 +125,8 @@ public:
*/
template<class T>
static void toStdout(const T& data) {
toStream<T>(data, std::cout);
std::list<sax::Token> tokens = toTokens<T>(data);
sax::SaxComposeInterface::printStdout(tokens);
}
/**
......
......@@ -36,7 +36,7 @@ void SaxComposeInterface::printFile(const std::string& filename, const std::list
}
 
void SaxComposeInterface::printStdout(const std::list<Token>& in) {
SaxComposeInterface::printStream(std::cout, in);
SaxComposeInterface::printFile("-", in);
}
 
void SaxComposeInterface::printStream(std::ostream& out, const std::list<Token>& in) {
......
......@@ -50,7 +50,7 @@ void SaxParseInterface::parseFile(const std::string& filename, std::list<Token>&
}
 
void SaxParseInterface::parseStdin(std::list<Token>& out) {
SaxParseInterface::parseStream(std::cin, out);
SaxParseInterface::parseFile("-", out);
}
 
void SaxParseInterface::parseStream(std::istream& in, std::list<Token>& out) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment