|
Gaudi Framework, version v22r2 |
| Home | Generated: Tue May 10 2011 |
#include <CallbackStreamBuf.h>


Public Member Functions | |
| CallbackStreamBuf (PyObject *self) | |
| CallbackStreamBuf constructor. | |
| ~CallbackStreamBuf () | |
| CallbackStreamBuf destructor. | |
| virtual int | sync () |
| reimplementation of stringbuf::sync() | |
Private Attributes | |
| PyObject * | m_self |
| char * | m_callbackBuff |
Definition at line 15 of file CallbackStreamBuf.h.
| GaudiPython::CallbackStreamBuf::CallbackStreamBuf | ( | PyObject * | self ) |
CallbackStreamBuf constructor.
Definition at line 43 of file CallbackStreamBuf.cpp.
: stringbuf(), m_self(self) { Py_INCREF(this->m_self); this->m_callbackBuff = new char[512]; //used for passing the flushed chars in the python callback }
| GaudiPython::CallbackStreamBuf::~CallbackStreamBuf | ( | ) |
CallbackStreamBuf destructor.
Definition at line 52 of file CallbackStreamBuf.cpp.
{
Py_DECREF( this->m_self );
delete this->m_callbackBuff;
}
| int GaudiPython::CallbackStreamBuf::sync | ( | ) | [virtual] |
reimplementation of stringbuf::sync()
Reimplemented from std::basic_stringbuf< _CharT, _Traits, _Alloc >.
Definition at line 61 of file CallbackStreamBuf.cpp.
{
int length;
char *x;
for ( length = 0, x = this->pbase(); x < this->epptr(); x++ , length++ ) ;
//getting in a null terminated buffer the characters
memcpy( this->m_callbackBuff, this->pbase(), min(length, 512) );
this->m_callbackBuff[ min(length, 512) ] = '\0';
//calling the python method
GaudiPython::call_python_method(this->m_self, "_sync", this->m_callbackBuff);
//reseting in/out buffer pointers
setp( this->pbase() , this->pbase() );
setg( this->eback(), this->eback(), this->eback() );
return 0;
}
char* GaudiPython::CallbackStreamBuf::m_callbackBuff [private] |
Definition at line 19 of file CallbackStreamBuf.h.
PyObject* GaudiPython::CallbackStreamBuf::m_self [private] |
Definition at line 18 of file CallbackStreamBuf.h.