Files
pcas/src/cas/generic/caServer.cc
2003-05-02 17:45:06 +00:00

175 lines
3.8 KiB
C++

/*************************************************************************\
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
* National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
* Operator of Los Alamos National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
* $Id$
*
* Author Jeffrey O. Hill
* johill@lanl.gov
* 505 665 1831
*/
#include "dbMapper.h" // ait to dbr types
#include "gddAppTable.h" // EPICS application type table
#include "fdManager.h"
#define epicsExportSharedSymbols
#include "casMonitor.h"
#include "caServerI.h"
caServer::caServer ()
{
static bool init = false;
if ( ! init ) {
gddMakeMapDBR(gddApplicationTypeTable::app_table);
init = true;
}
this->pCAS = new caServerI ( *this );
}
caServer::~caServer()
{
if (this->pCAS) {
delete this->pCAS;
this->pCAS = NULL;
}
}
pvExistReturn caServer::pvExistTest ( const casCtx & ctx,
const caNetAddr & /* clientAddress */, const char * pPVAliasName )
{
return this->pvExistTest ( ctx, pPVAliasName );
}
pvExistReturn caServer::pvExistTest ( const casCtx &, const char * )
{
return pverDoesNotExistHere;
}
pvCreateReturn caServer::createPV ( const casCtx &, const char * )
{
return S_casApp_pvNotFound;
}
pvAttachReturn caServer::pvAttach ( const casCtx &ctx, const char *pAliasName )
{
// remain backwards compatible (call deprecated routine)
return this->createPV ( ctx, pAliasName );
}
casEventMask caServer::registerEvent (const char *pName) // X aCC 361
{
if (this->pCAS) {
return this->pCAS->registerEvent(pName);
}
else {
casEventMask emptyMask;
printf("caServer:: no server internals attached\n");
return emptyMask;
}
}
void caServer::show(unsigned level) const
{
if (this->pCAS) {
this->pCAS->show(level);
}
else {
printf("caServer:: no server internals attached\n");
}
}
void caServer::setDebugLevel (unsigned level)
{
if (pCAS) {
this->pCAS->setDebugLevel(level);
}
else {
printf("caServer:: no server internals attached\n");
}
}
unsigned caServer::getDebugLevel () const // X aCC 361
{
if (pCAS) {
return this->pCAS->getDebugLevel();
}
else {
printf("caServer:: no server internals attached\n");
return 0u;
}
}
casEventMask caServer::valueEventMask () const // X aCC 361
{
if (pCAS) {
return this->pCAS->valueEventMask();
}
else {
printf("caServer:: no server internals attached\n");
return casEventMask();
}
}
casEventMask caServer::logEventMask () const // X aCC 361
{
if (pCAS) {
return this->pCAS->logEventMask();
}
else {
printf("caServer:: no server internals attached\n");
return casEventMask();
}
}
casEventMask caServer::alarmEventMask () const // X aCC 361
{
if ( pCAS ) {
return this->pCAS->alarmEventMask ();
}
else {
printf ( "caServer:: no server internals attached\n" );
return casEventMask ();
}
}
class epicsTimer & caServer::createTimer ()
{
return fileDescriptorManager.createTimer ();
}
unsigned caServer::subscriptionEventsProcessed () const // X aCC 361
{
if ( pCAS ) {
return this->pCAS->subscriptionEventsProcessed ();
}
else {
return 0u;
}
}
unsigned caServer::subscriptionEventsPosted () const // X aCC 361
{
if ( pCAS ) {
return this->pCAS->subscriptionEventsPosted ();
}
else {
return 0u;
}
}
void caServer::generateBeaconAnomaly ()
{
if ( pCAS ) {
this->pCAS->generateBeaconAnomaly ();
}
}