<arg type='s' name='app_id' direction='in'/>
<arg type='a{sv}' name='select_rule' direction='in'/>
<arg type='i' name='error_code' direction='out'/>
- <arg type='a{sv}' name='statistics' direction='out'/>
+ <arg type='aa{sv}' name='statistics' direction='out'/>
</method>
<method name='Reset'>
Name: stc-manager
Summary: STC(Smart Traffic Control) manager
-Version: 0.0.26
+Version: 0.0.27
Release: 0
Group: Network & Connectivity/Other
License: Apache-2.0
#define SELECT_CHUNKS "select binpath, hw_net_protocol_type, " \
"is_roaming, sum(received) as received, " \
"sum(sent) as sent, imsi, ground, iftype, ifname, " \
- "time_stamp - time_stamp % ? as time_stamp " \
+ "time_stamp - time_stamp % ? as timestamp " \
"from statistics where time_stamp between ? and ? " \
- "group by binpath, time_stamp, imsi order by time_stamp"
+ "group by binpath, timestamp, imsi order by timestamp"
#define SELECT_CHUNKS_IFACE "select binpath, hw_net_protocol_type, " \
"is_roaming, sum(received) as received, " \
"sum(sent) as sent, imsi, ground, iftype, ifname, " \
- "time_stamp - time_stamp % ? as time_stamp " \
+ "time_stamp - time_stamp % ? as timestamp " \
"from statistics where time_stamp between ? and ? and iftype=?" \
- "group by binpath, time_stamp, imsi order by time_stamp"
+ "group by binpath, timestamp, imsi order by timestamp"
#define SELECT_APP_DETAILS "select iftype, hw_net_protocol_type, " \
"is_roaming, sum(received) as received, sum(sent) as sent, " \
data.cnt.out_bytes = sqlite3_column_int64(stmt, 4);
data.ifname = (char *)sqlite3_column_text(stmt, 5);
data.imsi = (char *)sqlite3_column_text(stmt, 6);
+ data.ground = sqlite3_column_int(stmt, 7);
if (rule->granularity) {
- interval.from = sqlite3_column_int64(stmt, 7);
+ interval.from = sqlite3_column_int64(stmt, 8);
interval.to = interval.from + rule->granularity;
}
return;
}
- g_variant_builder_add(builder, "{sv}", "app_id",
- g_variant_new_string(info->app_id));
+ if (info->app_id)
+ g_variant_builder_add(builder, "{sv}", "app_id",
+ g_variant_new_string(info->app_id));
- g_variant_builder_add(builder, "{sv}", "ifname",
- g_variant_new_string(info->ifname));
+ if (info->ifname)
+ g_variant_builder_add(builder, "{sv}", "ifname",
+ g_variant_new_string(info->ifname));
g_variant_builder_add(builder, "{sv}", "imsi",
g_variant_new_string(info->imsi));
{
__STC_LOG_FUNC_ENTER__;
GVariantBuilder *builder = (GVariantBuilder *)user_data;
+ GVariantBuilder sub_builder;
if (!info || !builder) {
__STC_LOG_FUNC_EXIT__;
return STC_CANCEL;
}
- __stc_statistics_app_info_builder_add(builder, info);
+ g_variant_builder_init(&sub_builder, G_VARIANT_TYPE("a{sv}"));
+ __stc_statistics_app_info_builder_add(&sub_builder, info);
__stc_statistics_print_app_info(info);
+ g_variant_builder_add_value(builder,
+ g_variant_builder_end(&sub_builder));
__STC_LOG_FUNC_EXIT__;
return STC_CONTINUE;
STC_LOGD("No selection rule, using default selection rule.");
}
- builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+ builder = g_variant_builder_new(G_VARIANT_TYPE("aa{sv}"));
ret = table_statistics_per_app(app_id, &rule,
__table_statistics_per_app_cb,
return TRUE;
}
- return_parameters = g_variant_new("(ia{sv})", STC_ERROR_NONE, builder);
+ return_parameters = g_variant_new("(iaa{sv})", STC_ERROR_NONE, builder);
g_variant_builder_unref(builder);
DEBUG_GDBUS_VARIANT("Return parameters: ", return_parameters);