File: MetricManagerAdvancedCAPI.c

package info (click to toggle)
libusermetrics 1.3.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,324 kB
  • sloc: cpp: 7,182; xml: 131; sh: 106; ansic: 60; makefile: 26
file content (48 lines) | stat: -rw-r--r-- 1,778 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <libusermetricsinput/usermetricsinput.h>

int main(int argc, char *argv[]) {
	// We start with a manager object.
	// This can be used as a long-lived object to reduce DBus traffic.
	UserMetricsInputMetricManager metricManager =
			usermetricsinput_metricmanager_new();

	// Create a parameters object
	UserMetricsInputMetricParameters parameters =
			usermetricsinput_metricparameters_new("twitter");

	// Set its attributes
	usermetricsinput_metricparameters_set_format_string(parameters,
			"<b>%1</b> tweets received today");
	usermetricsinput_metricparameters_set_empty_data_string(parameters,
			"No tweets today");
	usermetricsinput_metricparameters_set_text_domain(parameters,
			"myapptextdomain");

	// You can hold onto this shared object for as long as you want.
	// It will be destroyed when the manager is destroyed.
	UserMetricsInputMetric metric = usermetricsinput_metricmanager_add(
			metricManager, parameters);

	// Remember to free the parameters object after use
	usermetricsinput_metricparameters_delete(parameters);

	// The update is sent when the update object is destroyed.
	// Providing a blank username string will use the current
	// user according to the USER environment variable.
	UserMetricsInputMetricUpdate metricUpdate = usermetricsinput_metric_update(
			metric, "username");

	// The data is ordered starting from today, going backwards in time
	usermetricsinput_metricupdate_add_data(metricUpdate, 1.0);
	usermetricsinput_metricupdate_add_data(metricUpdate, 0.1);
	usermetricsinput_metricupdate_add_data(metricUpdate, -5.0);

	// Delete and dispatch the metri update
	usermetricsinput_metricupdate_delete(metricUpdate);

	// Free the manager when done with it
	usermetricsinput_metricmanager_delete(metricManager);

	return 0;
}