The Gaudi Framework  v29r0 (ff2e7097)
PipeReader Class Reference
Collaboration diagram for PipeReader:

Public Member Functions

 PipeReader (const char *cmd)
 
 ~PipeReader (void)
 
std::istringstreamoutput (void)
 

Private Attributes

FILE * pipe
 
std::istringstreamiss
 

Detailed Description

Definition at line 89 of file pfm_gen_analysis.cpp.

Constructor & Destructor Documentation

PipeReader::PipeReader ( const char *  cmd)
inline

Definition at line 92 of file pfm_gen_analysis.cpp.

93  {
94  pipe = popen( cmd, "r" );
95  if ( !pipe ) {
96  printf( "Cannot open pipe. Exiting...\n" );
97  exit( 1 );
98  }
99  char buffer[PIPE_BUFFER_LENGTH];
100  bzero( buffer, PIPE_BUFFER_LENGTH );
101  std::string result = "";
102  while ( !feof( pipe ) ) {
103  if ( fgets( buffer, PIPE_BUFFER_LENGTH, pipe ) != NULL ) {
104  result += buffer;
105  }
106  bzero( buffer, PIPE_BUFFER_LENGTH );
107  }
108  iss = new std::istringstream( result, std::istringstream::in );
109  }
std::istringstream * iss
T fgets(T...args)
STL class.
T exit(T...args)
#define PIPE_BUFFER_LENGTH
T feof(T...args)
T printf(T...args)
PipeReader::~PipeReader ( void  )
inline

Definition at line 111 of file pfm_gen_analysis.cpp.

112  {
113  pclose( pipe );
114  delete iss;
115  }
std::istringstream * iss

Member Function Documentation

std::istringstream& PipeReader::output ( void  )
inline

Definition at line 117 of file pfm_gen_analysis.cpp.

117 { return *iss; }
std::istringstream * iss

Member Data Documentation

std::istringstream* PipeReader::iss
private

Definition at line 121 of file pfm_gen_analysis.cpp.

FILE* PipeReader::pipe
private

Definition at line 120 of file pfm_gen_analysis.cpp.


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