All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PipeReader Class Reference
Collaboration diagram for PipeReader:

Public Member Functions

 PipeReader (const char *cmd)
 
 ~PipeReader (void)
 
std::istringstream & output (void)
 

Private Attributes

FILE * pipe
 
std::istringstream * iss
 

Detailed Description

Definition at line 88 of file pfm_gen_analysis.cpp.

Constructor & Destructor Documentation

PipeReader::PipeReader ( const char *  cmd)
inline

Definition at line 91 of file pfm_gen_analysis.cpp.

92  {
93  pipe = popen(cmd, "r");
94  if(!pipe)
95  {
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  {
104  if(fgets(buffer, PIPE_BUFFER_LENGTH, pipe)!=NULL)
105  {
106  result += buffer;
107  }
108  bzero(buffer, PIPE_BUFFER_LENGTH);
109  }
110  iss = new std::istringstream(result, std::istringstream::in);
111  }
std::istringstream * iss
#define PIPE_BUFFER_LENGTH
PipeReader::~PipeReader ( void  )
inline

Definition at line 113 of file pfm_gen_analysis.cpp.

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

Member Function Documentation

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

Definition at line 119 of file pfm_gen_analysis.cpp.

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

Member Data Documentation

std::istringstream* PipeReader::iss
private

Definition at line 125 of file pfm_gen_analysis.cpp.

FILE* PipeReader::pipe
private

Definition at line 124 of file pfm_gen_analysis.cpp.


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