This is Unofficial EPICS BASE Doxygen Site
asDbLib.h File Reference
#include <stdio.h>
#include "callback.h"
#include "shareLib.h"
+ Include dependency graph for asDbLib.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ASDBCALLBACK
 

Functions

epicsShareFunc int asSetFilename (const char *acf)
 
epicsShareFunc int asSetSubstitutions (const char *substitutions)
 
epicsShareFunc int asInit (void)
 
epicsShareFunc int asInitAsyn (ASDBCALLBACK *pcallback)
 
epicsShareFunc int asShutdown (void)
 
epicsShareFunc int asDbGetAsl (struct dbChannel *chan)
 
epicsShareFunc void * asDbGetMemberPvt (struct dbChannel *chan)
 
epicsShareFunc int asdbdump (void)
 
epicsShareFunc int asdbdumpFP (FILE *fp)
 
epicsShareFunc int aspuag (const char *uagname)
 
epicsShareFunc int aspuagFP (FILE *fp, const char *uagname)
 
epicsShareFunc int asphag (const char *hagname)
 
epicsShareFunc int asphagFP (FILE *fp, const char *hagname)
 
epicsShareFunc int asprules (const char *asgname)
 
epicsShareFunc int asprulesFP (FILE *fp, const char *asgname)
 
epicsShareFunc int aspmem (const char *asgname, int clients)
 
epicsShareFunc int aspmemFP (FILE *fp, const char *asgname, int clients)
 
epicsShareFunc int astac (const char *recordname, const char *user, const char *location)
 

Function Documentation

epicsShareFunc int asdbdump ( void  )

Definition at line 281 of file asDbLib.c.

282 {
283  asDumpFP(stdout,myMemberCallback,NULL,1);
284  return(0);
285 }
#define NULL
Definition: catime.c:38
LIBCOM_API int epicsStdCall asDumpFP(FILE *fp, void(*memcallback)(ASMEMBERPVT, FILE *), void(*clientcallback)(ASCLIENTPVT, FILE *), int verbose)
#define stdout
Definition: epicsStdio.h:30
epicsShareFunc int asdbdumpFP ( FILE *  fp)

Definition at line 287 of file asDbLib.c.

288 {
289  asDumpFP(fp,myMemberCallback,NULL,1);
290  return(0);
291 }
#define NULL
Definition: catime.c:38
LIBCOM_API int epicsStdCall asDumpFP(FILE *fp, void(*memcallback)(ASMEMBERPVT, FILE *), void(*clientcallback)(ASCLIENTPVT, FILE *), int verbose)
epicsShareFunc int asDbGetAsl ( struct dbChannel *  chan)

Definition at line 213 of file asDbLib.c.

214 {
215  return dbChannelFldDes(chan)->as_level;
216 }
epicsShareFunc void* asDbGetMemberPvt ( struct dbChannel *  chan)

Definition at line 218 of file asDbLib.c.

219 {
220  return dbChannelRecord(chan)->asp;
221 }
epicsShareFunc int asInit ( void  )

Definition at line 152 of file asDbLib.c.

153 {
154  return(asInitCommon());
155 }
epicsShareFunc int asInitAsyn ( ASDBCALLBACK pcallback)

Definition at line 187 of file asDbLib.c.

188 {
189  if(!pacf) return(0);
190  if(asInitTheadId) {
191  errMessage(-1,"asInit: asInitTask already active");
192  if(pcallback) {
193  pcallback->status = S_asLib_InitFailed;
194  callbackRequest(&pcallback->callback);
195  }
196  return(-1);
197  }
198  asInitTheadId = epicsThreadCreate("asInitTask",
201  (EPICSTHREADFUNC)asInitTask,(void *)pcallback);
202  if(asInitTheadId==0) {
203  errMessage(0,"asInit: epicsThreadCreate Error");
204  if(pcallback) {
205  pcallback->status = S_asLib_InitFailed;
206  callbackRequest(&pcallback->callback);
207  }
208  asInitTheadId = 0;
209  }
210  return(0);
211 }
#define errMessage(S, PM)
Definition: errlog.h:48
LIBCOM_API unsigned int epicsStdCall epicsThreadGetStackSize(epicsThreadStackSizeClass size)
Definition: osdThread.c:466
epicsThreadId epicsStdCall epicsThreadCreate(const char *name, unsigned int priority, unsigned int stackSize, EPICSTHREADFUNC funptr, void *parm)
Definition: epicsThread.cpp:33
#define S_asLib_InitFailed
Definition: asLib.h:136
epicsCallback callback
Definition: asDbLib.h:21
#define epicsThreadPriorityCAServerHigh
Definition: epicsThread.h:81
long status
Definition: asDbLib.h:22
void(* EPICSTHREADFUNC)(void *parm)
Definition: epicsThread.h:66
epicsShareFunc int asphag ( const char *  hagname)

Definition at line 306 of file asDbLib.c.

307 {
308  asDumpHagFP(stdout,hagname);
309  return(0);
310 }
LIBCOM_API int epicsStdCall asDumpHagFP(FILE *fp, const char *hagname)
#define stdout
Definition: epicsStdio.h:30
epicsShareFunc int asphagFP ( FILE *  fp,
const char *  hagname 
)

Definition at line 312 of file asDbLib.c.

313 {
314  asDumpHagFP(fp,hagname);
315  return(0);
316 }
LIBCOM_API int epicsStdCall asDumpHagFP(FILE *fp, const char *hagname)
epicsShareFunc int aspmem ( const char *  asgname,
int  clients 
)

Definition at line 330 of file asDbLib.c.

331 {
332  asDumpMemFP(stdout,asgname,myMemberCallback,clients);
333  return(0);
334 }
ChannelProviderRegistry::shared_pointer clients
LIBCOM_API int epicsStdCall asDumpMemFP(FILE *fp, const char *asgname, void(*memcallback)(ASMEMBERPVT, FILE *), int clients)
#define stdout
Definition: epicsStdio.h:30
epicsShareFunc int aspmemFP ( FILE *  fp,
const char *  asgname,
int  clients 
)

Definition at line 336 of file asDbLib.c.

337 {
338  asDumpMemFP(fp,asgname,myMemberCallback,clients);
339  return(0);
340 }
ChannelProviderRegistry::shared_pointer clients
LIBCOM_API int epicsStdCall asDumpMemFP(FILE *fp, const char *asgname, void(*memcallback)(ASMEMBERPVT, FILE *), int clients)
epicsShareFunc int asprules ( const char *  asgname)

Definition at line 318 of file asDbLib.c.

319 {
320  asDumpRulesFP(stdout,asgname);
321  return(0);
322 }
LIBCOM_API int epicsStdCall asDumpRulesFP(FILE *fp, const char *asgname)
#define stdout
Definition: epicsStdio.h:30
epicsShareFunc int asprulesFP ( FILE *  fp,
const char *  asgname 
)

Definition at line 324 of file asDbLib.c.

325 {
326  asDumpRulesFP(fp,asgname);
327  return(0);
328 }
LIBCOM_API int epicsStdCall asDumpRulesFP(FILE *fp, const char *asgname)
epicsShareFunc int aspuag ( const char *  uagname)

Definition at line 293 of file asDbLib.c.

294 {
295  asDumpUagFP(stdout,uagname);
296  return(0);
297 }
#define stdout
Definition: epicsStdio.h:30
LIBCOM_API int epicsStdCall asDumpUagFP(FILE *fp, const char *uagname)
epicsShareFunc int aspuagFP ( FILE *  fp,
const char *  uagname 
)

Definition at line 299 of file asDbLib.c.

300 {
301 
302  asDumpUagFP(fp,uagname);
303  return(0);
304 }
LIBCOM_API int epicsStdCall asDumpUagFP(FILE *fp, const char *uagname)
epicsShareFunc int asSetFilename ( const char *  acf)

Definition at line 70 of file asDbLib.c.

71 {
72  if (pacf)
73  free (pacf);
74  if (acf) {
75  pacf = calloc(1, strlen(acf)+1);
76  if (!pacf) {
77  errMessage(0, "asSetFilename calloc failure");
78  } else {
79  strcpy(pacf, acf);
80  if (*pacf != '/' && !strchr(pacf, ':')) {
81  printf("asSetFilename: Warning - relative paths won't usually "
82  "work\n");
83  }
84  }
85  } else {
86  pacf = NULL;
87  }
88  return 0;
89 }
#define printf
Definition: epicsStdio.h:41
#define NULL
Definition: catime.c:38
#define errMessage(S, PM)
Definition: errlog.h:48
epicsShareFunc int asSetSubstitutions ( const char *  substitutions)

Definition at line 91 of file asDbLib.c.

92 {
93  if(psubstitutions) free ((void *)psubstitutions);
94  if(substitutions) {
95  psubstitutions = calloc(1,strlen(substitutions)+1);
96  if(!psubstitutions) {
97  errMessage(0,"asSetSubstitutions calloc failure");
98  } else {
99  strcpy(psubstitutions,substitutions);
100  }
101  } else {
102  psubstitutions = NULL;
103  }
104  return(0);
105 }
#define NULL
Definition: catime.c:38
#define errMessage(S, PM)
Definition: errlog.h:48
epicsShareFunc int asShutdown ( void  )

Definition at line 157 of file asDbLib.c.

157  {
158  volatile ASBASE *pbase = pasbase;
159  pasbase = NULL;
160  firstTime = TRUE;
161  if(pbase)
162  asFreeAll((ASBASE*)pbase);
163  return 0;
164 }
LIBCOM_API volatile ASBASE * pasbase
Definition: asLibRoutines.c:38
#define NULL
Definition: catime.c:38
Definition: asLib.h:152
#define TRUE
Definition: dbDefs.h:27
LIBCOM_API void asFreeAll(ASBASE *pasbase)
epicsShareFunc int astac ( const char *  recordname,
const char *  user,
const char *  location 
)

Definition at line 233 of file asDbLib.c.

234 {
235  DBADDR *paddr;
236  long status;
237  ASCLIENTPVT *pasclientpvt=NULL;
238  dbCommon *precord;
239  dbFldDes *pflddes;
240  char *puser;
241  char *plocation;
242 
243  if (!pname || !user || !location){
244  printf("Usage: astac \"record name\", \"user\", \"host\"\n");
245  return(1);
246  }
247  paddr = dbCalloc(1,sizeof(DBADDR) + sizeof(ASCLIENTPVT));
248  pasclientpvt = (ASCLIENTPVT *)(paddr + 1);
249  status=dbNameToAddr(pname,paddr);
250  if(status) {
251  errMessage(status,"dbNameToAddr error");
252  return(1);
253  }
254  precord = paddr->precord;
255  pflddes = paddr->pfldDes;
256  puser = asCalloc(1,strlen(user)+1);
257  strcpy(puser,user);
258  plocation = asCalloc(1,strlen(location)+1);
259  strcpy(plocation,location);
260 
261  status = asAddClient(pasclientpvt,precord->asp,
262  (int)pflddes->as_level,puser,plocation);
263  if(status) {
264  errMessage(status,"asAddClient error");
265  return(1);
266  } else {
267  asPutClientPvt(*pasclientpvt,(void *)precord->name);
268  asRegisterClientCallback(*pasclientpvt,astacCallback);
269  }
270  return(0);
271 }
pvd::Status status
LIBCOM_API long epicsStdCall asAddClient(ASCLIENTPVT *asClientPvt, ASMEMBERPVT asMemberPvt, int asl, const char *user, char *host)
LIBCOM_API long epicsStdCall asRegisterClientCallback(ASCLIENTPVT asClientPvt, ASCLIENTCALLBACK pcallback)
#define printf
Definition: epicsStdio.h:41
LIBCOM_API void epicsStdCall asPutClientPvt(ASCLIENTPVT asClientPvt, void *userPvt)
#define NULL
Definition: catime.c:38
#define errMessage(S, PM)
Definition: errlog.h:48
asLevel as_level
Definition: dbBase.h:93
#define dbCalloc(nobj, size)
Definition: dbStaticLib.h:228
LIBCOM_API void *epicsStdCall asCalloc(size_t nobj, size_t size)
const std::string pname