X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcharts%2Froc-chart.h;h=309ac38e987a432c67454b0e6c2996b9cd725a54;hb=81579d9e9f994fb2908f50af41c3eb033d216e58;hp=dca842071a667f4fe05c379096977202d5755ebf;hpb=7c08a6e1009cf60847e770a77a73c650e9326379;p=pspp-builds.git diff --git a/src/output/charts/roc-chart.h b/src/output/charts/roc-chart.h index dca84207..309ac38e 100644 --- a/src/output/charts/roc-chart.h +++ b/src/output/charts/roc-chart.h @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,12 +18,86 @@ #define OUTPUT_CHARTS_ROC_CHART_H 1 #include +#include +#include "output/chart-item.h" -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 "libpspp/cast.h" + +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 */