#include "lisp/writer.hpp"
-#include "physfs/ofile_stream.hpp"
+#include "physfs/buffered_ofile_stream.hpp"
#include "util/log.hpp"
namespace lisp {
indent_depth(),
lists()
{
- out = new OFileStream(filename);
+ BufferedOFileStream* filestream = new BufferedOFileStream(filename);
+ out = filestream->get_stream();
out_owned = true;
indent_depth = 0;
out->precision(10);
--- /dev/null
+// SuperTux
+// Copyright (C) 2015 Tobias Markus <tobbi@mozilla-uk.org>
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef HEADER_SUPERTUX_PHYSFS_BUFFERED_OFILE_STREAM_CPP
+#define HEADER_SUPERTUX_PHYSFS_BUFFERED_OFILE_STREAM_CPP
+
+#include "physfs/buffered_ofile_stream.hpp"
+
+BufferedOFileStream::BufferedOFileStream(const std::string& filename)
+{
+ buffer = new OFileStreambuf(filename);
+ stream = new OFileStream(buffer);
+}
+
+BufferedOFileStream::~BufferedOFileStream()
+{
+ delete buffer;
+ delete stream;
+ buffer = NULL;
+ stream = NULL;
+}
+
+OFileStream* BufferedOFileStream::get_stream()
+{
+ return stream;
+}
+
+#endif
+
+/* EOF */
--- /dev/null
+// SuperTux
+// Copyright (C) 2015 Tobias Markus <tobbi@mozilla-uk.org>
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef HEADER_SUPERTUX_PHYSFS_BUFFERED_OFILE_STREAM_HPP
+#define HEADER_SUPERTUX_PHYSFS_BUFFERED_OFILE_STREAM_HPP
+
+#include <ostream>
+#include <physfs.h>
+#include "physfs/ofile_stream.hpp"
+#include "physfs/ofile_streambuf.hpp"
+
+class BufferedOFileStream {
+
+private:
+ OFileStream* stream;
+ OFileStreambuf* buffer;
+
+public:
+ BufferedOFileStream(const std::string& filename);
+ ~BufferedOFileStream();
+
+ OFileStream* get_stream();
+};
+#endif
+
+/* EOF */
#include "physfs/ofile_stream.hpp"
-#include "physfs/ofile_streambuf.hpp"
-
-OFileStream::OFileStream(const std::string& filename) :
- std::ostream(new OFileStreambuf(filename))
+OFileStream::OFileStream(OFileStreambuf* buf) :
+ std::ostream(buf)
{
}
#include <ostream>
#include <physfs.h>
+#include "physfs/ofile_streambuf.hpp"
class OFileStream : public std::ostream
{
public:
- OFileStream(const std::string& filename);
+ OFileStream(OFileStreambuf* buf);
~OFileStream();
};
-
#endif
/* EOF */