jl777 7 years ago
parent
commit
559b6834d3
  1. 23
      iguana/exchanges/LP_stats.c

23
iguana/exchanges/LP_stats.c

@ -38,11 +38,12 @@ void LP_tradecommand_log(cJSON *argjson)
} }
} }
uint32_t LP_requests,LP_reserveds,LP_connects,LP_connecteds,LP_tradestatuses,LP_parse_errors,LP_unknowns; uint32_t LP_requests,LP_reserveds,LP_connects,LP_connecteds,LP_tradestatuses,LP_parse_errors,LP_unknowns,LP_duplicates;
uint64_t Ridqids[128];
void LP_statslog_parseline(cJSON *lineobj) void LP_statslog_parseline(cJSON *lineobj)
{ {
char *method; struct LP_quoteinfo Q; char *method; int32_t i,duplicate; struct LP_quoteinfo Q; uint64_t ridqid;
if ( (method= jstr(lineobj,"method")) != 0 ) if ( (method= jstr(lineobj,"method")) != 0 )
{ {
if ( strcmp(method,"request") == 0 ) if ( strcmp(method,"request") == 0 )
@ -53,7 +54,6 @@ void LP_statslog_parseline(cJSON *lineobj)
LP_connects++; LP_connects++;
else if ( strcmp(method,"connected") == 0 ) else if ( strcmp(method,"connected") == 0 )
{ {
LP_connecteds++;
memset(&Q,0,sizeof(Q)); memset(&Q,0,sizeof(Q));
if ( LP_quoteparse(&Q,lineobj) < 0 ) if ( LP_quoteparse(&Q,lineobj) < 0 )
{ {
@ -62,9 +62,24 @@ void LP_statslog_parseline(cJSON *lineobj)
} }
else else
{ {
ridqid = (((uint64_t)Q.R.requestid << 32) | Q.R.quoteid);
for (i=duplicate=0; i<sizeof(Ridqids)/sizeof(*Ridqids); i++)
{
if ( Ridqids[i] == ridqid )
{
duplicate = 1;
LP_duplicates++;
break;
}
}
if ( duplicate == 0 )
{
Ridqids[LP_connecteds % (sizeof(Ridqids)/sizeof(*Ridqids))] = ridqid;
printf("connected requestid.%u quoteid.%u\n",Q.R.requestid,Q.R.quoteid); printf("connected requestid.%u quoteid.%u\n",Q.R.requestid,Q.R.quoteid);
} }
} }
LP_connecteds++;
}
else if ( strcmp(method,"tradestatus") == 0 ) else if ( strcmp(method,"tradestatus") == 0 )
LP_tradestatuses++; LP_tradestatuses++;
else else
@ -85,7 +100,9 @@ char *LP_statslog_disp(int32_t n)
jaddnum(retjson,"reserved",LP_reserveds); jaddnum(retjson,"reserved",LP_reserveds);
jaddnum(retjson,"connect",LP_connects); jaddnum(retjson,"connect",LP_connects);
jaddnum(retjson,"connected",LP_connecteds); jaddnum(retjson,"connected",LP_connecteds);
jaddnum(retjson,"duplicates",LP_duplicates);
jaddnum(retjson,"parse_errors",LP_parse_errors); jaddnum(retjson,"parse_errors",LP_parse_errors);
jaddnum(retjson,"uniqes",LP_connecteds-LP_duplicates);
jaddnum(retjson,"tradestatus",LP_tradestatuses); jaddnum(retjson,"tradestatus",LP_tradestatuses);
jaddnum(retjson,"unknown",LP_unknowns); jaddnum(retjson,"unknown",LP_unknowns);
return(jprint(retjson,1)); return(jprint(retjson,1));

Loading…
Cancel
Save