X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcharts%2Froc-chart.h;h=a995f9302d4f3f4d3d39feefb2045a01ba62a3fe;hb=dfd1972f7bcb550a4fc3b05dbe7e71d12334b0a7;hp=dca842071a667f4fe05c379096977202d5755ebf;hpb=c9a3c45e44c1c03d13d4eb186e3817bc836f75f8;p=pspp-builds.git diff --git a/src/output/charts/roc-chart.h b/src/output/charts/roc-chart.h index dca84207..a995f930 100644 --- a/src/output/charts/roc-chart.h +++ b/src/output/charts/roc-chart.h @@ -18,12 +18,86 @@ #define OUTPUT_CHARTS_ROC_CHART_H 1 #include +#include +#include -struct casereader; +struct roc_chart + { + struct chart_item chart_item; + bool reference; + struct roc_var *vars; + size_t n_vars; + size_t allocated_vars; + }; + +struct roc_var + { + char *name; + struct casereader *cutpoint_reader; + }; struct roc_chart *roc_chart_create (bool reference); void roc_chart_add_var (struct roc_chart *, const char *var_name, const struct casereader *cutpoint_reader); -struct chart *roc_chart_get_chart (struct roc_chart *); + +/* This boilerplate for roc_chart, a subclass of chart_item, was + autogenerated by mk-class-boilerplate. */ + +#include +#include + +extern const struct chart_item_class roc_chart_class; + +/* Returns true if SUPER is a roc_chart, otherwise false. */ +static inline bool +is_roc_chart (const struct chart_item *super) +{ + return super->class == &roc_chart_class; +} + +/* Returns SUPER converted to roc_chart. SUPER must be a roc_chart, as + reported by is_roc_chart. */ +static inline struct roc_chart * +to_roc_chart (const struct chart_item *super) +{ + assert (is_roc_chart (super)); + return UP_CAST (super, struct roc_chart, chart_item); +} + +/* Returns INSTANCE converted to chart_item. */ +static inline struct chart_item * +roc_chart_super (const struct roc_chart *instance) +{ + return CONST_CAST (struct chart_item *, &instance->chart_item); +} + +/* Increments INSTANCE's reference count and returns INSTANCE. */ +static inline struct roc_chart * +roc_chart_ref (const struct roc_chart *instance) +{ + return to_roc_chart (chart_item_ref (&instance->chart_item)); +} + +/* Decrements INSTANCE's reference count, then destroys INSTANCE if + the reference count is now zero. */ +static inline void +roc_chart_unref (struct roc_chart *instance) +{ + chart_item_unref (&instance->chart_item); +} + +/* Returns true if INSTANCE's reference count is greater than 1, + false otherwise. */ +static inline bool +roc_chart_is_shared (const struct roc_chart *instance) +{ + return chart_item_is_shared (&instance->chart_item); +} +static inline void +roc_chart_submit (struct roc_chart *instance) +{ + chart_item_submit (&instance->chart_item); +} + #endif /* output/charts/roc-chart.h */