This is Unofficial EPICS BASE Doxygen Site
ASCLIENT Struct Reference

#include "pvif.h"

+ Collaboration diagram for ASCLIENT:

Public Member Functions

 ASCLIENT ()
 
 ~ASCLIENT ()
 
void add (dbChannel *chan, ASCred &cred)
 
bool canWrite ()
 

Public Attributes

ASCLIENTPVT aspvt
 
std::vector< ASCLIENTPVTgrppvt
 

Detailed Description

Definition at line 98 of file pvif.h.

Constructor & Destructor Documentation

ASCLIENT::ASCLIENT ( )
inline

Definition at line 101 of file pvif.h.

101 :aspvt(0) {}
ASCLIENTPVT aspvt
Definition: pvif.h:99
ASCLIENT::~ASCLIENT ( )

Definition at line 131 of file pvif.cpp.

132 {
134  for(size_t i=0, N=grppvt.size(); i<N; i++) {
136  }
137 }
int i
Definition: scan.c:967
LIBCOM_API long epicsStdCall asRemoveClient(ASCLIENTPVT *asClientPvt)
std::vector< ASCLIENTPVT > grppvt
Definition: pvif.h:100
ASCLIENTPVT aspvt
Definition: pvif.h:99

Member Function Documentation

void ASCLIENT::add ( dbChannel *  chan,
ASCred cred 
)

Definition at line 139 of file pvif.cpp.

140 {
142  /* asAddClient() fails secure to no-permission */
143  (void)asAddClient(&aspvt, dbChannelRecord(chan)->asp, dbChannelFldDes(chan)->as_level, &cred.user[0], &cred.host[0]);
144 
145  grppvt.resize(cred.groups.size(), 0);
146 
147  for(size_t i=0, N=grppvt.size(); i<N; i++) {
149  (void)asAddClient(&grppvt[i], dbChannelRecord(chan)->asp, dbChannelFldDes(chan)->as_level, &cred.groups[i][0], &cred.host[0]);
150  }
151 }
int i
Definition: scan.c:967
LIBCOM_API long epicsStdCall asAddClient(ASCLIENTPVT *asClientPvt, ASMEMBERPVT asMemberPvt, int asl, const char *user, char *host)
std::vector< char > host
Definition: pvif.h:93
std::vector< std::vector< char > > groups
Definition: pvif.h:94
LIBCOM_API long epicsStdCall asRemoveClient(ASCLIENTPVT *asClientPvt)
std::vector< ASCLIENTPVT > grppvt
Definition: pvif.h:100
ASCLIENTPVT aspvt
Definition: pvif.h:99
std::vector< char > user
Definition: pvif.h:93
bool ASCLIENT::canWrite ( )

Definition at line 153 of file pvif.cpp.

153  {
154  if(!asActive || (aspvt && asCheckPut(aspvt)))
155  return true;
156  for(size_t i=0, N=grppvt.size(); i<N; i++) {
157  if(grppvt[i] && asCheckPut(grppvt[i]))
158  return true;
159  }
160  return false;
161 }
#define asCheckPut(asClientPvt)
Definition: asLib.h:45
int i
Definition: scan.c:967
std::vector< ASCLIENTPVT > grppvt
Definition: pvif.h:100
ASCLIENTPVT aspvt
Definition: pvif.h:99
LIBCOM_API int asActive
Definition: asLibRoutines.c:40

Member Data Documentation

ASCLIENTPVT ASCLIENT::aspvt

Definition at line 99 of file pvif.h.

std::vector<ASCLIENTPVT> ASCLIENT::grppvt

Definition at line 100 of file pvif.h.


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