From 6fb95a63ecfa32b1524790ee42695f19773f2174 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Tue, 20 Oct 2009 22:14:00 +0200 Subject: Change stap parser to use an input file descriptor other than stdin * grapher/StapParser.hxx (_inFd, getInFd, setInFd): new member and fuctions * grapher/StapParser.cxx (ioCallback): Use _inFd variable instead of stdin. * grapher/grapher.cxx (StapLauncher::launch): Don't read input from stap on stdin; use the the read end of the pipe. --- grapher/StapParser.hxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'grapher/StapParser.hxx') diff --git a/grapher/StapParser.hxx b/grapher/StapParser.hxx index f4f6bdef..eeebed63 100644 --- a/grapher/StapParser.hxx +++ b/grapher/StapParser.hxx @@ -13,14 +13,20 @@ class StapParser Gtk::Window& _win; GraphWidget& _widget; int _errFd; + int _inFd; public: StapParser(Gtk::Window& win, - GraphWidget& widget) : _win(win), _widget(widget), _errFd(-1) {} + GraphWidget& widget) : _win(win), _widget(widget), _errFd(-1), + _inFd(-1) + { + } void parseData(std::tr1::shared_ptr gdata, double time, const std::string& dataString); bool ioCallback(Glib::IOCondition ioCondition); bool errIoCallback(Glib::IOCondition ioCondition); int getErrFd() { return _errFd; } void setErrFd(int fd) { _errFd = fd; } + int getInFd() { return _inFd; } + void setInFd(int fd) { _inFd = fd; } }; } -- cgit From 4bf8ba6e4fc0a950301e5debedababa834ea0d10 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Wed, 21 Oct 2009 17:05:59 +0200 Subject: More refactoring for multiple stap processes. * grapher/StapParser.hxx (StapParser): Change _win and _widget from references to pointers. * grapher/StapParser.cxx (ioCallback): Ditto. * grapher/grapher.cxx (StapLauncher, GraphicalStapLauncher): Rewrite to make GraphicalStapLauncher a derived class of StapLauncher. (main): Accept graphing data from stdin with a "-" argument. --- grapher/StapParser.hxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'grapher/StapParser.hxx') diff --git a/grapher/StapParser.hxx b/grapher/StapParser.hxx index eeebed63..40add9fd 100644 --- a/grapher/StapParser.hxx +++ b/grapher/StapParser.hxx @@ -10,13 +10,13 @@ class StapParser typedef std::map > DataMap; DataMap _dataSets; CSVData _csv; - Gtk::Window& _win; - GraphWidget& _widget; + Gtk::Window* _win; + GraphWidget* _widget; int _errFd; int _inFd; public: - StapParser(Gtk::Window& win, - GraphWidget& widget) : _win(win), _widget(widget), _errFd(-1), + StapParser(Gtk::Window* win, + GraphWidget* widget) : _win(win), _widget(widget), _errFd(-1), _inFd(-1) { } -- cgit