// ------------------------------------------------------------- SharedPythonOStream::SharedPythonOStream(size_t maxSize) { // Use Python to allocate the memory. Py_ssize_t bufferSize = NextPythonSize(maxSize); PyObject * pys = PyString_FromStringAndSize(0, bufferSize); // Access the pointers. char *buffer=0; Py_ssize_t n=0; PyString_AsStringAndSize(pys, &buffer, &n); // Hang on to everything p_ = boost::shared_ptr<SharedPythonOStreamInternals>( new SharedPythonOStreamInternals(pys, buffer, maxSize)); }
// ------------------------------------------------------------- SharedPythonOStream::SharedPythonOStream(size_t maxSize) : target_size_(NextPythonSize(maxSize)), ss_(std::ios_base::out) { }