This is Unofficial EPICS BASE Doxygen Site
pdbRecordIterator Struct Reference

#include "pvif.h"

+ Collaboration diagram for pdbRecordIterator:

Public Member Functions

 pdbRecordIterator ()
 
 pdbRecordIterator (const dbChannel *chan)
 
 ~pdbRecordIterator ()
 
bool done () const
 
bool next ()
 
dbCommon * record () const
 
const char * name () const
 
const char * info (const char *key, const char *def=0)
 

Public Attributes

DBENTRY ent
 
bool m_done
 

Detailed Description

Definition at line 128 of file pvif.h.

Constructor & Destructor Documentation

pdbRecordIterator::pdbRecordIterator ( )
inline

Definition at line 131 of file pvif.h.

132  {
133  dbInitEntry(pdbbase, &ent);
135  while(!m_done) {
136  if(dbFirstRecord(&ent)==0)
137  break;
138  // not instances of this type
139  m_done = dbNextRecordType(&ent)!=0;
140  }
141  }
void dbInitEntry(dbBase *pdbbase, DBENTRY *pdbentry)
Definition: dbStaticLib.c:626
long dbFirstRecordType(DBENTRY *pdbentry)
Definition: dbStaticLib.c:1198
long dbNextRecordType(DBENTRY *pdbentry)
Definition: dbStaticLib.c:1209
long dbFirstRecord(DBENTRY *pdbentry)
Definition: dbStaticLib.c:1569
DBENTRY ent
Definition: pvif.h:129
pdbRecordIterator::pdbRecordIterator ( const dbChannel *  chan)
inline

Definition at line 142 of file pvif.h.

143  {
144 #if EPICS_VERSION_INT>=VERSION_INT(3,16,1,0)
145  dbInitEntryFromRecord(dbChannelRecord(chan), &ent);
146 #else
147  dbInitEntry(pdbbase, &ent);
148  if(dbFindRecord(&ent, dbChannelRecord(chan)->name)!=0)
149  throw std::logic_error("Record not found");
150 #endif
151  m_done = false;
152  }
void dbInitEntry(dbBase *pdbbase, DBENTRY *pdbentry)
Definition: dbStaticLib.c:626
long dbFindRecord(DBENTRY *pdbentry, const char *pname)
Definition: dbStaticLib.c:1559
const char * name() const
Definition: pvif.h:182
DBENTRY ent
Definition: pvif.h:129
pdbRecordIterator::~pdbRecordIterator ( )
inline

Definition at line 160 of file pvif.h.

161  {
162  dbFinishEntry(&ent);
163  }
void dbFinishEntry(DBENTRY *pdbentry)
Definition: dbStaticLib.c:632
DBENTRY ent
Definition: pvif.h:129

Member Function Documentation

bool pdbRecordIterator::done ( ) const
inline

Definition at line 164 of file pvif.h.

164 { return m_done; }
const char* pdbRecordIterator::info ( const char *  key,
const char *  def = 0 
)
inline

Definition at line 185 of file pvif.h.

186  {
187  if(m_done || dbFindInfo(&ent, key))
188  return def;
189  return dbGetInfoString(&ent);
190  }
const char * dbGetInfoString(DBENTRY *pdbentry)
Definition: dbStaticLib.c:2908
long dbFindInfo(DBENTRY *pdbentry, const char *name)
Definition: dbStaticLib.c:2867
int * def
Definition: flex.c:92
DBENTRY ent
Definition: pvif.h:129
const char* pdbRecordIterator::name ( ) const
inline

Definition at line 182 of file pvif.h.

182  {
183  return m_done ? NULL : ent.precnode->recordname;
184  }
#define NULL
Definition: catime.c:38
dbRecordNode * precnode
Definition: dbStaticLib.h:37
char * recordname
Definition: dbBase.h:117
DBENTRY ent
Definition: pvif.h:129
bool pdbRecordIterator::next ( )
inline

Definition at line 165 of file pvif.h.

165  {
166  if(!m_done && dbNextRecord(&ent)!=0)
167  {
168  // done with this recordType
169  while(true) {
170  m_done = dbNextRecordType(&ent)!=0;
171  if(m_done) break;
172  if(dbFirstRecord(&ent)==0)
173  break;
174  // not instances of this type
175  }
176  }
177  return m_done;
178  }
long dbNextRecordType(DBENTRY *pdbentry)
Definition: dbStaticLib.c:1209
long dbNextRecord(DBENTRY *pdbentry)
Definition: dbStaticLib.c:1583
long dbFirstRecord(DBENTRY *pdbentry)
Definition: dbStaticLib.c:1569
DBENTRY ent
Definition: pvif.h:129
dbCommon* pdbRecordIterator::record ( ) const
inline

Definition at line 179 of file pvif.h.

179  {
180  return m_done ? NULL : (dbCommon*)ent.precnode->precord;
181  }
void * precord
Definition: dbBase.h:116
#define NULL
Definition: catime.c:38
dbRecordNode * precnode
Definition: dbStaticLib.h:37
DBENTRY ent
Definition: pvif.h:129

Member Data Documentation

DBENTRY pdbRecordIterator::ent

Definition at line 129 of file pvif.h.

bool pdbRecordIterator::m_done

Definition at line 130 of file pvif.h.


The documentation for this struct was generated from the following file: