to = now;
from = now - 60;
- if (edg_wll_StateRate(ctx,group,atoi(argv[2]),argc >=4 ? atoi(argv[3]) : 0,
+ if (edg_wll_StateRates(ctx,group,atoi(argv[2]),argc >=4 ? atoi(argv[3]) : 0,
&from,&to,&vals,&groups,&from_res,&to_res))
{
char *et,*ed;
if (http_check_status(ctx,response))
goto err;
- edg_wll_ParseStatsResult(ctx,message, from, to, rates,
+ edg_wll_ParseStatsResultFull(ctx,message, from, to, rates,
¬_returned, ¬_returned, groups, res_from, res_to);
err:
if (http_check_status(ctx,response))
goto err;
- edg_wll_ParseStatsResult(ctx,message, from, to, ¬_returned,
+ edg_wll_ParseStatsResultFull(ctx,message, from, to, ¬_returned,
durations, ¬_returned, groups, res_from, res_to);
err:
if (http_check_status(ctx,response))
goto err;
- edg_wll_ParseStatsResult(ctx,message, from, to, ¬_returned,
+ edg_wll_ParseStatsResultFull(ctx,message, from, to, ¬_returned,
durations, dispersions, groups, res_from, res_to);
err:
extern int edg_wll_StatsDurationFTRequestToXML(edg_wll_Context,const char *,const edg_wll_QueryRec *,edg_wll_JobStatCode,edg_wll_JobStatCode,int,time_t *,time_t *,char **);
-extern edg_wll_ErrorCode edg_wll_ParseStatsResult(edg_wll_Context ctx, char *messageBody, time_t *from, time_t *to, float **rate, float **duration, float **dispersion, char ***group, int *res_from, int *res_to);
+extern edg_wll_ErrorCode edg_wll_ParseStatsResult(edg_wll_Context ctx, char *messageBody, time_t *from, time_t *to, float *rate, float *duration, int *res_from, int *res_to);
+
+extern edg_wll_ErrorCode edg_wll_ParseStatsResultFull(edg_wll_Context ctx, char *messageBody, time_t *from, time_t *to, float **rate, float **duration, float **dispersion, char ***group, int *res_from, int *res_to);
#ifdef __cplusplus
}
/* parse statistics result from client */
-edg_wll_ErrorCode edg_wll_ParseStatsResult(edg_wll_Context ctx, char *messageBody, time_t *from, time_t *to, float **rate, float **duration, float **dispersion, char ***group, int *res_from, int *res_to)
+
+/* this is backward-compatible version, edg_wll_ParseStatsResultFull is prefered*/
+edg_wll_ErrorCode edg_wll_ParseStatsResult(edg_wll_Context ctx, char *messageBody, time_t *from, time_t *to, float *rate, float *duration, int *res_from, int *res_to)
+{
+ float *rates, *durations, *dispersions;
+ char **groups;
+ edg_wll_ErrorCode ret;
+ int i;
+
+ ret = edg_wll_ParseStatsResultFull(ctx, messageBody, from, to, &rates, &durations, &dispersions, &groups, res_from, res_to);
+
+ if (groups && groups[0]){
+ if (rates) {
+ *rate = rates[0];
+ free(rates);
+ }
+ if (durations) {
+ *duration = durations[0];
+ free(durations);
+ }
+ if (dispersions)
+ free(dispersions);
+ for(i = 0; groups[i]; i++)
+ free(groups[i]);
+ }
+ if (groups)
+ free(groups);
+
+ return ret;
+}
+
+edg_wll_ErrorCode edg_wll_ParseStatsResultFull(edg_wll_Context ctx, char *messageBody, time_t *from, time_t *to, float **rate, float **duration, float **dispersion, char ***group, int *res_from, int *res_to)
{
edg_wll_XML_ctx XMLCtx;
edg_wll_ErrorCode errorCode;