This is Unofficial EPICS BASE Doxygen Site
pvif.cpp File Reference
#include <pv/pvIntrospect.h>
#include <pv/standardField.h>
#include <dbAccess.h>
#include <dbChannel.h>
#include <dbStaticLib.h>
#include <dbLock.h>
#include <dbEvent.h>
#include <alarm.h>
#include <errSymTbl.h>
#include <epicsVersion.h>
#include <errlog.h>
#include <osiSock.h>
#include <pv/status.h>
#include <pv/bitSet.h>
#include <pv/pvData.h>
#include <pv/anyscalar.h>
#include <pv/reftrack.h>
#include <pv/pvAccess.h>
#include <pv/security.h>
#include "sb.h"
#include "pvif.h"
#include <epicsExport.h>
#include "pv/typemap.h"
+ Include dependency graph for pvif.cpp:

Go to the source code of this file.

Macros

#define FMAP(MNAME, PVT, FNAME, DBE)
 
#define FMAP(MNAME, PVT, FNAME, DBE)
 
#define CASE(BASETYPE, PVATYPE, DBFTYPE, PVACODE)   case DBR_##DBFTYPE: value->putFrom<PVATYPE>(buf.dbf_##DBFTYPE); break;
 
#define CASE_ENUM
 
#define CASE_SKIP_BOOL
 
#define CASE(BASETYPE, PVATYPE, DBFTYPE, PVACODE)   case DBR_##DBFTYPE: buf.dbf_##DBFTYPE = value->getAs<PVATYPE>(); break;
 
#define CASE_ENUM
 
#define CASE_SKIP_BOOL
 
#define FMAP(MNAME, FNAME)   pv.MNAME->put(meta.FNAME)
 
#define FMAP(MASK, MNAME, FNAME)   if(META::mask&(MASK) && pv.MNAME) pv.MNAME->put(meta.FNAME)
 
#define FMAP(MASK, MNAME, FNAME)   if(META::mask&(MASK) && pv.MNAME) pv.MNAME->putFrom(meta.FNAME)
 
#define CASE(BASETYPE, PVATYPE, DBFTYPE, PVACODE)   case DBR_##DBFTYPE: return pvd::pv##PVACODE;
 
#define CASE_ENUM
 
#define CASE_SKIP_BOOL
 
#define CASE(BASETYPE, PVATYPE, DBFTYPE, PVACODE)   case pvd::pv##PVACODE: return DBR_##DBFTYPE;
 
#define CASE_SQUEEZE_INT64
 

Functions

short PVD2DBR (pvd::ScalarType pvt)
 

Macro Definition Documentation

#define CASE (   BASETYPE,
  PVATYPE,
  DBFTYPE,
  PVACODE 
)    case DBR_##DBFTYPE: value->putFrom<PVATYPE>(buf.dbf_##DBFTYPE); break;
#define CASE (   BASETYPE,
  PVATYPE,
  DBFTYPE,
  PVACODE 
)    case DBR_##DBFTYPE: buf.dbf_##DBFTYPE = value->getAs<PVATYPE>(); break;
#define CASE (   BASETYPE,
  PVATYPE,
  DBFTYPE,
  PVACODE 
)    case DBR_##DBFTYPE: return pvd::pv##PVACODE;
#define CASE (   BASETYPE,
  PVATYPE,
  DBFTYPE,
  PVACODE 
)    case pvd::pv##PVACODE: return DBR_##DBFTYPE;
#define CASE_ENUM
#define CASE_ENUM
#define CASE_ENUM
#define CASE_SKIP_BOOL
#define CASE_SKIP_BOOL
#define CASE_SKIP_BOOL
#define CASE_SQUEEZE_INT64
#define FMAP (   MNAME,
  PVT,
  FNAME,
  DBE 
)
Value:
pvm.MNAME = pv->getSubFieldT<pvd::PVT>(FNAME); \
pvm.mask ## DBE.set(pvm.MNAME->getFieldOffset())
Definition: tool_lib.h:67
#define FMAP (   MNAME,
  PVT,
  FNAME,
  DBE 
)
Value:
pvm.MNAME = pv->getSubField<pvd::PVT>(FNAME); \
if(pvm.MNAME) pvm.mask ## DBE.set(pvm.MNAME->getFieldOffset())
Definition: tool_lib.h:67
if(yy_init)
Definition: scan.c:972
#define FMAP (   MNAME,
  FNAME 
)    pv.MNAME->put(meta.FNAME)
#define FMAP (   MASK,
  MNAME,
  FNAME 
)    if(META::mask&(MASK) && pv.MNAME) pv.MNAME->put(meta.FNAME)
#define FMAP (   MASK,
  MNAME,
  FNAME 
)    if(META::mask&(MASK) && pv.MNAME) pv.MNAME->putFrom(meta.FNAME)

Function Documentation

short PVD2DBR ( pvd::ScalarType  pvt)

Definition at line 749 of file pvif.cpp.

750 {
751  switch(pvt) {
752 #define CASE(BASETYPE, PVATYPE, DBFTYPE, PVACODE) case pvd::pv##PVACODE: return DBR_##DBFTYPE;
753 #ifndef USE_INT64
754 # define CASE_SQUEEZE_INT64
755 #endif
756 #include "pv/typemap.h"
757 #ifndef USE_INT64
758 # undef CASE_SQUEEZE_INT64
759 #endif
760 #undef CASE
761  case pvd::pvString: return DBF_STRING;
762  }
763  return -1;
764 }