
I don't know if that helps the OP, but it's certainly an improvement over
mine!
Thanks.
-- Early
On Wed, May 13, 2009 at 3:11 AM, Christopher Currie
On Mon, May 11, 2009 at 2:17 PM, Early Ehlinger
wrote: Basically, you need to create a streambuf class that calls PySys_WriteStdout() inside your_streambuf_class::sync().
It's probably fairly straightforward to do this using Boost.Iostreams, by creating a model of Sink:
include
#include <algorithm> // min #include <iosfwd> // streamsize #include
// sink_tag #include // stream #include // format class pysys_stdout_sink { public: typedef char char_type; typedef boost::iostreams::sink_tag category;
std::streamsize write( const char* s, std::streamsize n ) { // PySys_WriteStdout truncates to 1000 chars static const std::streamsize MAXSIZE = 1000;
std::streamsize written = std::min( n, MAXSIZE ); PySys_WriteStdout( (boost::format("%%.%1%s") % written).str().c_str(), s );
return written; } };
boost::iostreams::stream
pysys_stdout; int main() { Py_Initialize(); pysys_stdout << "Hello, Python world!\n"; }
HTH, Christopher _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Early Ehlinger