From 20916bbf245c2bdcd45c42393312db1ee02c898b Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 6 Mar 2009 23:51:54 +0000 Subject: [PATCH] Count aliases separately in reports. --- src/db/dbCaTest.c | 31 +++++++++++++++++++------------ src/db/dbTest.c | 23 ++++++++++++++++------- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/src/db/dbCaTest.c b/src/db/dbCaTest.c index 0a708e900..e4103068a 100644 --- a/src/db/dbCaTest.c +++ b/src/db/dbCaTest.c @@ -1,5 +1,5 @@ /*************************************************************************\ -* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne +* Copyright (c) 2009 UChicago Argonne LLC, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. @@ -78,8 +78,9 @@ long dbcar(char *precordname, int level) while (!status) { status = dbFirstRecord(pdbentry); while (!status) { - if (!precordname - || (strcmp(precordname,dbGetRecordName(pdbentry)) ==0)) { + if (precordname ? + !strcmp(precordname, dbGetRecordName(pdbentry)) : + !dbIsAlias(pdbentry)) { pdbRecordType = pdbentry->precordType; precord = (dbCommon *)pdbentry->precnode->precord; for (j=0; jno_links; j++) { @@ -171,19 +172,25 @@ void dbcaStats(int *pchans, int *pdiscon) status = dbFirstRecordType(pdbentry); while (!status) { dbRecordType *pdbRecordType = pdbentry->precordType; + status = dbFirstRecord(pdbentry); while (!status) { dbCommon *precord = (dbCommon *)pdbentry->precnode->precord; int j; - for (j=0; jno_links; j++) { - int i = pdbRecordType->link_ind[j]; - dbFldDes *pdbFldDes = pdbRecordType->papFldDes[i]; - plink = (DBLINK *)((char *)precord + pdbFldDes->offset); - if (plink->type == CA_LINK) { - caLink *pca = (caLink *)plink->value.pv_link.pvt; - ncalinks++; - if (pca && ca_state(pca->chid) == cs_conn) { - nconnected++; + + if (!dbIsAlias(pdbentry)) { + for (j=0; jno_links; j++) { + int i = pdbRecordType->link_ind[j]; + + dbFldDes *pdbFldDes = pdbRecordType->papFldDes[i]; + plink = (DBLINK *)((char *)precord + pdbFldDes->offset); + if (plink->type == CA_LINK) { + caLink *pca = (caLink *)plink->value.pv_link.pvt; + + ncalinks++; + if (pca && ca_state(pca->chid) == cs_conn) { + nconnected++; + } } } } diff --git a/src/db/dbTest.c b/src/db/dbTest.c index e7fa25420..f03ec856e 100644 --- a/src/db/dbTest.c +++ b/src/db/dbTest.c @@ -1,5 +1,5 @@ /*************************************************************************\ -* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne +* Copyright (c) 2009 UChicago Argonne LLC, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. @@ -183,7 +183,9 @@ long epicsShareAPI dbnr(int verbose) DBENTRY *pdbentry=&dbentry; long status; int nrecords; - int total = 0; + int naliases; + int trecords = 0; + int taliases = 0; if (!pdbbase) { printf("No database loaded\n"); @@ -191,16 +193,23 @@ long epicsShareAPI dbnr(int verbose) } dbInitEntry(pdbbase, pdbentry); status = dbFirstRecordType(pdbentry); - if (status) printf("No record types loaded\n"); + if (status) { + printf("No record types loaded\n"); + return 0; + } + printf("Records Aliases Record Type\n"); while (!status) { - nrecords = dbGetNRecords(pdbentry); - total += nrecords; + naliases = dbGetNAliases(pdbentry); + taliases += naliases; + nrecords = dbGetNRecords(pdbentry) - naliases; + trecords += nrecords; if (verbose || nrecords) - printf("%4d %s\n", nrecords, dbGetRecordTypeName(pdbentry)); + printf(" %5d %5d %s\n", + nrecords, naliases, dbGetRecordTypeName(pdbentry)); status = dbNextRecordType(pdbentry); } dbFinishEntry(pdbentry); - printf("Total Records: %d\n", total); + printf("Total %d records, %d aliases\n", trecords, taliases); return 0; }