The Gaudi Framework  v39r1 (adb068b2)
PipeReader Class Reference
Collaboration diagram for PipeReader:

Public Member Functions

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

Private Attributes

FILE * pipe
 
std::unique_ptr< std::istringstreamiss
 

Detailed Description

Definition at line 100 of file pfm_gen_analysis.cpp.

Constructor & Destructor Documentation

◆ PipeReader()

PipeReader::PipeReader ( const char *  cmd)
inline

Definition at line 102 of file pfm_gen_analysis.cpp.

102  {
103  pipe = popen( cmd, "r" );
104  if ( !pipe ) {
105  printf( "Cannot open pipe. Exiting...\n" );
106  exit( 1 );
107  }
108  char buffer[PIPE_BUFFER_LENGTH];
109  bzero( buffer, PIPE_BUFFER_LENGTH );
110  std::string result = "";
111  while ( !feof( pipe ) ) {
112  if ( fgets( buffer, PIPE_BUFFER_LENGTH, pipe ) != NULL ) { result += buffer; }
113  bzero( buffer, PIPE_BUFFER_LENGTH );
114  }
115  iss = std::make_unique<std::istringstream>( result, std::istringstream::in );
116  }

◆ ~PipeReader()

PipeReader::~PipeReader ( void  )
inline

Definition at line 118 of file pfm_gen_analysis.cpp.

118 { pclose( pipe ); }

Member Function Documentation

◆ output()

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

Definition at line 120 of file pfm_gen_analysis.cpp.

120 { return *iss; }

Member Data Documentation

◆ iss

std::unique_ptr<std::istringstream> PipeReader::iss
private

Definition at line 124 of file pfm_gen_analysis.cpp.

◆ pipe

FILE* PipeReader::pipe
private

Definition at line 123 of file pfm_gen_analysis.cpp.


The documentation for this class was generated from the following file:
std::string
STL class.
std::feof
T feof(T... args)
std::fgets
T fgets(T... args)
PipeReader::pipe
FILE * pipe
Definition: pfm_gen_analysis.cpp:123
std::printf
T printf(T... args)
PIPE_BUFFER_LENGTH
#define PIPE_BUFFER_LENGTH
Definition: pfm_gen_analysis.cpp:98
PipeReader::iss
std::unique_ptr< std::istringstream > iss
Definition: pfm_gen_analysis.cpp:124
std::exit
T exit(T... args)