This interface is similar to the probe_index interface, except
that an additional all_values() method returns an
attr_value_t list of values as individually returned when calling
value(idx) on each indexed probe. Using all_values()
instead of looping over value(idx) can provide a significant
improvement in performance, depending on the number of probes whose values
need to be read, starting from a couple of probes.
The probe_sampler objects, provided in the probe-monitor
extension, make use of the all_values() method to boost their
performance when sampling probes implemented with the probe_array
interface.
SIM_INTERFACE(probe_array) {
int (*num_indices)(conf_object_t *obj);
attr_value_t (*value)(conf_object_t *obj, int idx);
attr_value_t (*all_values)(conf_object_t *obj);
attr_value_t (*properties)(conf_object_t *obj, int idx);
};
#define PROBE_ARRAY_INTERFACE "probe_array"