void PipelineManager::readPipeline(std::istream& input) { // Read stream into string. std::string s(std::istreambuf_iterator<char>(input), {}); std::istringstream ss(s); if (s.find("?xml") != std::string::npos) PipelineReaderXML(*this).readPipeline(ss); else if (s.find("\"pipeline\"") != std::string::npos) PipelineReaderJSON(*this).readPipeline(ss); else { try { PipelineReaderXML(*this).readPipeline(ss); } catch (pdal_error) { // Rewind to make sure the stream is properly positioned after // attempting an XML pipeline. ss.seekg(0); PipelineReaderJSON(*this).readPipeline(ss); } } }
void PipelineManager::readPipeline(std::istream& input) { std::istreambuf_iterator<char> eos; // Read stream into string. std::string s(std::istreambuf_iterator<char>(input), eos); std::istringstream ss(s); PipelineReaderJSON(*this).readPipeline(ss); }