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  {
97  printf("Cannot open pipe. Exiting...\n");
98  exit(1);
99  }
100  char buffer[PIPE_BUFFER_LENGTH];
101  bzero(buffer, PIPE_BUFFER_LENGTH);
102  std::string result = "";
103  while(!feof(pipe))
104  {
105  if(fgets(buffer, PIPE_BUFFER_LENGTH, pipe)!=NULL)
106  {
107  result += buffer;
108  }
109  bzero(buffer, PIPE_BUFFER_LENGTH);
110  }
111  iss = new std::istringstream(result, std::istringstream::in);
112  }
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 114 of file pfm_gen_analysis.cpp.

115  {
116  pclose(pipe);
117  delete iss;
118  }
std::istringstream * iss

Member Function Documentation

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

Definition at line 120 of file pfm_gen_analysis.cpp.

121  {
122  return *iss;
123  }
std::istringstream * iss

Member Data Documentation

std::istringstream* PipeReader::iss
private

Definition at line 126 of file pfm_gen_analysis.cpp.

FILE* PipeReader::pipe
private

Definition at line 125 of file pfm_gen_analysis.cpp.


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