/* Web Polygraph http://www.web-polygraph.org/
* (C) 2003-2006 The Measurement Factory
* Licensed under the Apache License, Version 2.0 */
#ifndef POLYGRAPH__LOGANALYZERS_REPORTFIGURE_H
#define POLYGRAPH__LOGANALYZERS_REPORTFIGURE_H
#include "xstd/String.h"
class String;
class PhaseInfo;
class BlobDb;
class ReportBlob;
// a figure based on interval or phase stats
class ReportFigure {
public:
static String TheBaseDir; // where to put all figures
public:
ReportFigure();
virtual ~ReportFigure();
const String &title() const { return theTitle; }
virtual void configure(const String &key, const String &title);
virtual const ReportBlob &plot(BlobDb &db);
public:
// set before calling setCtrlOptions
String theDataStyle;
String theLabelX1;
String theLabelY1;
String theLabelY2;
protected:
virtual int createCtrlFile() = 0;
virtual void setCtrlOptions() = 0;
bool plotCtrlFile();
bool destroyCtrlFile();
void addPlotLine(const String &title, const String &unit);
void addedAllPlotLines();
protected:
const PhaseInfo *thePhase;
String theKey;
String theTitle;
String theBaseName;
String thePlotFname;
String theCtrlFname;
ostream *theCtrlFile;
int thePlotLineCount;
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1