All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GaudiPython::CallbackStreamBuf Class Reference

#include </scratch/z5/marcocle/lhcb-release/419/GAUDI/GAUDI_v26r1/InstallArea/x86_64-slc6-gcc48-opt/include/GaudiPython/CallbackStreamBuf.h>

Inheritance diagram for GaudiPython::CallbackStreamBuf:
Collaboration diagram for GaudiPython::CallbackStreamBuf:

Public Member Functions

 CallbackStreamBuf (PyObject *self)
 CallbackStreamBuf constructor.
 
 ~CallbackStreamBuf ()
 CallbackStreamBuf destructor.
 
virtual int sync ()
 reimplementation of stringbuf::sync()
 
 CallbackStreamBuf (PyObject *self)
 
 ~CallbackStreamBuf ()
 
virtual int sync ()
 

Private Attributes

PyObject * m_self
 
char * m_callbackBuff
 

Detailed Description

Definition at line 15 of file CallbackStreamBuf.h.

Constructor & Destructor Documentation

GaudiPython::CallbackStreamBuf::CallbackStreamBuf ( PyObject *  self)

CallbackStreamBuf constructor.

Definition at line 40 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 49 of file CallbackStreamBuf.cpp.

{
Py_DECREF( this->m_self );
delete this->m_callbackBuff;
}
GaudiPython::CallbackStreamBuf::CallbackStreamBuf ( PyObject *  self)
GaudiPython::CallbackStreamBuf::~CallbackStreamBuf ( )

Member Function Documentation

int GaudiPython::CallbackStreamBuf::sync ( )
virtual

reimplementation of stringbuf::sync()

Definition at line 58 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
//reseting in/out buffer pointers
setp( this->pbase() , this->pbase() );
setg( this->eback(), this->eback(), this->eback() );
return 0;
}
virtual int GaudiPython::CallbackStreamBuf::sync ( )
virtual

Member Data Documentation

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.


The documentation for this class was generated from the following files: