Gaudi Framework, version v25r2

Home   Generated: Wed Jun 4 2014
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
GaudiPython::CallbackStreamBuf Class Reference

#include <CallbackStreamBuf.h>

Inheritance diagram for GaudiPython::CallbackStreamBuf:
Inheritance graph
[legend]
Collaboration diagram for GaudiPython::CallbackStreamBuf:
Collaboration graph
[legend]

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
 

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;
}

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;
}

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:

Generated at Wed Jun 4 2014 14:49:06 for Gaudi Framework, version v25r2 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004