xref: /dragonfly/usr.bin/evtranalyze/plotter.h (revision 86d7f5d3)
1*86d7f5d3SJohn Marino #ifndef _PLOTTER_H_
2*86d7f5d3SJohn Marino #define _PLOTTER_H_
3*86d7f5d3SJohn Marino 
4*86d7f5d3SJohn Marino typedef int plotid_t;
5*86d7f5d3SJohn Marino enum plot_type {
6*86d7f5d3SJohn Marino 	PLOT_TYPE_START,
7*86d7f5d3SJohn Marino 	PLOT_TYPE_HIST,
8*86d7f5d3SJohn Marino 	PLOT_TYPE_LINE,
9*86d7f5d3SJohn Marino 	PLOT_TYPE_END
10*86d7f5d3SJohn Marino };
11*86d7f5d3SJohn Marino 
12*86d7f5d3SJohn Marino struct plotter {
13*86d7f5d3SJohn Marino 	void *(*plot_init)(const char *);
14*86d7f5d3SJohn Marino 	plotid_t (*plot_new)(void *, enum plot_type, const char *);
15*86d7f5d3SJohn Marino 	int (*plot_histogram)(void *, plotid_t, double);
16*86d7f5d3SJohn Marino 	int (*plot_line)(void *, plotid_t, double, double);
17*86d7f5d3SJohn Marino 	int (*plot_finish)(void *);
18*86d7f5d3SJohn Marino };
19*86d7f5d3SJohn Marino 
20*86d7f5d3SJohn Marino struct plotter *plotter_factory(void);
21*86d7f5d3SJohn Marino 
22*86d7f5d3SJohn Marino #endif /* _PLOTTER_H_ */
23