aboutsummaryrefslogtreecommitdiff
path: root/src/io
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2013-06-20 18:52:43 +0000
committerdos-reis <gdr@axiomatics.org>2013-06-20 18:52:43 +0000
commit71d28a360d8178fa4a0270cad0a41de26c1b0c7d (patch)
treefee5b204bb6dd3c9cb784686e396fe38d26e80dc /src/io
parent22f59081b0bafbd71233584e1f6bc99e3ec4cf59 (diff)
downloadopen-axiom-71d28a360d8178fa4a0270cad0a41de26c1b0c7d.tar.gz
Add basic diagnostics standard streams.
Diffstat (limited to 'src/io')
-rw-r--r--src/io/Makefile.am2
-rw-r--r--src/io/Makefile.in20
-rw-r--r--src/io/std-streams.cc57
3 files changed, 76 insertions, 3 deletions
diff --git a/src/io/Makefile.am b/src/io/Makefile.am
index bc1b59f5..63fbf41e 100644
--- a/src/io/Makefile.am
+++ b/src/io/Makefile.am
@@ -32,7 +32,7 @@
noinst_LIBRARIES = libio.a
-libio_a_SOURCES = Input.cc
+libio_a_SOURCES = Input.cc std-streams.cc
oa_target_incdir = $(top_builddir)/$(target)/include
diff --git a/src/io/Makefile.in b/src/io/Makefile.in
index 62adb6a3..728286d7 100644
--- a/src/io/Makefile.in
+++ b/src/io/Makefile.in
@@ -108,7 +108,8 @@ am__v_AR_0 = @echo " AR " $@;
am__v_AR_1 =
libio_a_AR = $(AR) $(ARFLAGS)
libio_a_LIBADD =
-am_libio_a_OBJECTS = libio_a-Input.$(OBJEXT)
+am_libio_a_OBJECTS = libio_a-Input.$(OBJEXT) \
+ libio_a-std-streams.$(OBJEXT)
libio_a_OBJECTS = $(am_libio_a_OBJECTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -347,7 +348,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
void_type = @void_type@
noinst_LIBRARIES = libio.a
-libio_a_SOURCES = Input.cc
+libio_a_SOURCES = Input.cc std-streams.cc
oa_target_incdir = $(top_builddir)/$(target)/include
libio_a_CPPFLAGS = -I$(top_srcdir)/src/include -I$(oa_target_incdir)
all: all-am
@@ -399,6 +400,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libio_a-Input.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libio_a-std-streams.Po@am__quote@
.cc.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -435,6 +437,20 @@ libio_a-Input.obj: Input.cc
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libio_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libio_a-Input.obj `if test -f 'Input.cc'; then $(CYGPATH_W) 'Input.cc'; else $(CYGPATH_W) '$(srcdir)/Input.cc'; fi`
+libio_a-std-streams.o: std-streams.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libio_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libio_a-std-streams.o -MD -MP -MF $(DEPDIR)/libio_a-std-streams.Tpo -c -o libio_a-std-streams.o `test -f 'std-streams.cc' || echo '$(srcdir)/'`std-streams.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libio_a-std-streams.Tpo $(DEPDIR)/libio_a-std-streams.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='std-streams.cc' object='libio_a-std-streams.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libio_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libio_a-std-streams.o `test -f 'std-streams.cc' || echo '$(srcdir)/'`std-streams.cc
+
+libio_a-std-streams.obj: std-streams.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libio_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libio_a-std-streams.obj -MD -MP -MF $(DEPDIR)/libio_a-std-streams.Tpo -c -o libio_a-std-streams.obj `if test -f 'std-streams.cc'; then $(CYGPATH_W) 'std-streams.cc'; else $(CYGPATH_W) '$(srcdir)/std-streams.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libio_a-std-streams.Tpo $(DEPDIR)/libio_a-std-streams.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='std-streams.cc' object='libio_a-std-streams.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libio_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libio_a-std-streams.obj `if test -f 'std-streams.cc'; then $(CYGPATH_W) 'std-streams.cc'; else $(CYGPATH_W) '$(srcdir)/std-streams.cc'; fi`
+
mostlyclean-libtool:
-rm -f *.lo
diff --git a/src/io/std-streams.cc b/src/io/std-streams.cc
new file mode 100644
index 00000000..a0a470ee
--- /dev/null
+++ b/src/io/std-streams.cc
@@ -0,0 +1,57 @@
+// Copyright (C) 2013, Gabriel Dos Reis.
+// All rights reserved.
+// Written by Gabriel Dos Reis.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// - Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in
+// the documentation and/or other materials provided with the
+// distribution.
+//
+// - Neither the name of OpenAxiom. nor the names of its contributors
+// may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <open-axiom/diagnostics>
+
+namespace OpenAxiom {
+ namespace Diagnostics {
+ StandardStream::StandardStream(std::ostream& o, std::ostream& e)
+ : out(&o), err(&e)
+ { }
+
+ StandardStream::~StandardStream() = default;
+
+ std::ostream&
+ StandardStream::set_output(std::ostream& os) {
+ auto prev = out;
+ out = &os;
+ return *prev;
+ }
+
+ std::ostream&
+ StandardStream::set_error(std::ostream& os) {
+ auto prev = err;
+ err = &os;
+ return *prev;
+ }
+ }
+}