From 1bf8ca7a59361942fdf905c64cbddeafb4658794 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Sat, 14 Jul 2018 20:19:28 -0500 Subject: [PATCH] Refactor to provide an istream prototype for parse() --- xs/src/libslic3r/GCodeReader.cpp | 7 ++++++- xs/src/libslic3r/GCodeReader.hpp | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/xs/src/libslic3r/GCodeReader.cpp b/xs/src/libslic3r/GCodeReader.cpp index 6ad937bbd..b4d9d22cb 100644 --- a/xs/src/libslic3r/GCodeReader.cpp +++ b/xs/src/libslic3r/GCodeReader.cpp @@ -17,8 +17,13 @@ void GCodeReader::parse(const std::string &gcode, callback_t callback) { std::istringstream ss(gcode); + this->parse_stream(ss, callback); +} + +void GCodeReader::parse_stream(std::istream &gcode, callback_t callback) +{ std::string line; - while (std::getline(ss, line)) + while (std::getline(gcode, line)) this->parse_line(line, callback); } diff --git a/xs/src/libslic3r/GCodeReader.hpp b/xs/src/libslic3r/GCodeReader.hpp index c627fc851..6d2db75a5 100644 --- a/xs/src/libslic3r/GCodeReader.hpp +++ b/xs/src/libslic3r/GCodeReader.hpp @@ -54,6 +54,7 @@ class GCodeReader { GCodeReader() : X(0), Y(0), Z(0), E(0), F(0), verbose(false), _extrusion_axis('E') {}; void apply_config(const PrintConfigBase &config); void parse(const std::string &gcode, callback_t callback); + void parse_stream(std::istream &gcode, callback_t callback); void parse_line(std::string line, callback_t callback); void parse_file(const std::string &file, callback_t callback);