From 7287113d58896d4b8e6250eaa9ad2f90e9d817fd Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Thu, 31 Oct 1996 22:27:03 +0000 Subject: [PATCH] added dbGetNelements and dbIsLinkConnected --- src/db/dbAccess.c | 28 ++++++++++++++++++++++++++++ src/db/dbAccess.h | 2 ++ 2 files changed, 30 insertions(+) diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index 0fd30e719..14e42d1c5 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -404,7 +404,35 @@ int dbGetFieldIndex(struct dbAddr *paddr) return(((struct dbFldDes *)paddr->pfldDes)->indRecordType); } +long dbGetNelements(struct link *plink,long *nelements) +{ + switch(plink->type) { + case CONSTANT: + *nelements = 0; + return(0); + case DB_LINK: { + DBADDR *paddr = (DBADDR *)plink->value.pv_link.pvt; + *nelements = paddr->no_elements; + return(0); + } + case CA_LINK: + return(dbCaGetNelements(plink,nelements)); + default: + break; + } + return(S_db_badField); +} +int dbIsLinkConnected(struct link *plink) +{ + switch(plink->type) { + case DB_LINK: return(TRUE); + case CA_LINK: return(dbCaIsLinkConnected(plink)); + default: break; + } + return(FALSE); +} + /* * Process a record if its scan field is passive. * Will notify if processing is complete by callback. diff --git a/src/db/dbAccess.h b/src/db/dbAccess.h index dafa83d7b..725c1ebb8 100644 --- a/src/db/dbAccess.h +++ b/src/db/dbAccess.h @@ -270,6 +270,8 @@ struct dbr_alDouble {DBRalDouble}; struct rset *dbGetRset(struct dbAddr *paddr); int dbIsValueField(struct dbFldDes *pdbFldDes); int dbGetFieldIndex(struct dbAddr *paddr); +long dbGetNelements(struct link *plink,long *nelements); +int dbIsLinkConnected(struct link *plink); long dbScanLink(struct dbCommon *pfrom, struct dbCommon *pto); long dbScanPassive(struct dbCommon *pfrom,struct dbCommon *pto); long dbProcess(struct dbCommon *precord);