cdev-1.7.2n
This commit is contained in:
135
include/cdevError.h
Normal file
135
include/cdevError.h
Normal file
@@ -0,0 +1,135 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 1994,1995 Southeastern Universities Research Association,
|
||||
// Continuous Electron Beam Accelerator Facility
|
||||
//
|
||||
// This software was developed under a United States Government license
|
||||
// described in the NOTICE file included as part of this distribution.
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Description:
|
||||
// cdevError class (abstract base class)
|
||||
//
|
||||
// Author: Jie Chen & Chip Watson
|
||||
//
|
||||
// Revision History:
|
||||
// cdevError.h,v
|
||||
// Revision 1.5 1997/08/27 18:23:31 chen
|
||||
// Change error reporting to site specific scheme
|
||||
//
|
||||
// Revision 1.4 1995/12/14 19:11:14 chen
|
||||
// add support to C interface
|
||||
//
|
||||
// Revision 1.3 1995/10/17 17:44:13 akers
|
||||
// Added setThreshold functionality and made data items protected
|
||||
//
|
||||
// Revision 1.2 1995/10/17 15:29:45 chen
|
||||
// change reportError interface
|
||||
//
|
||||
// Revision 1.1.1.1 1995/06/16 17:14:08 epics
|
||||
// initial import of cdev
|
||||
//
|
||||
//
|
||||
#ifndef _CDEV_ERROR_H
|
||||
#define _CDEV_ERROR_H
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <cdevSpec.h>
|
||||
|
||||
#define _CDEV_MAX_ERR_HANDLERS 5
|
||||
#define CDEV_SEVERITY_VOID_DATA 0xcde5da2a
|
||||
|
||||
class cdevRequestObject;
|
||||
|
||||
typedef void (*cdevErrorHandler)(int severity,
|
||||
char *text,
|
||||
cdevRequestObject* obj);
|
||||
|
||||
class CDEV_CLASS_SPEC cdevError
|
||||
{
|
||||
public:
|
||||
// destructor
|
||||
virtual ~cdevError (void);
|
||||
|
||||
virtual int autoErrorOn (void);
|
||||
// PURPOSE: turn on flag which enables auto error on
|
||||
// REQUIRE: derived class can implement diffrently
|
||||
// PROMISE: return 0
|
||||
|
||||
virtual int autoErrorOff (void);
|
||||
// PURPOSE: turn on flag which disables auto error on
|
||||
// REQUIRE: derived class can implement diffrently
|
||||
// PROMISE: return 0
|
||||
|
||||
virtual int vreportError (int severity,
|
||||
char * name,
|
||||
cdevRequestObject * obj,
|
||||
char * formatString,
|
||||
va_list argp);
|
||||
|
||||
// PURPOSE: report error to somewhere
|
||||
// REQUIRE: formatString can have anything that works in printf
|
||||
// PROMISE: same as printf
|
||||
|
||||
virtual int reportError (int severity,
|
||||
char *name,
|
||||
cdevRequestObject* obj,
|
||||
char *formatString,...);
|
||||
// PURPOSE: report error to somewhere
|
||||
// REQUIRE: formatString can have anything that works in printf
|
||||
// PROMISE: same as printf
|
||||
|
||||
virtual void reportError (int severity,
|
||||
char *message,
|
||||
cdevRequestObject* obj);
|
||||
// PURPOSE: report error to somewhere with a whole string
|
||||
// REQUIRE: user whole string
|
||||
// PROMISE:
|
||||
|
||||
|
||||
virtual void setErrorHandler (cdevErrorHandler handler = 0);
|
||||
// PURPOSE: allow caller to set up his/her own error Handler
|
||||
// REQUIRE: handle > 0 stands for a real function pointer
|
||||
// PROMISE: next time error will be handled by new error handler
|
||||
|
||||
virtual void setThreshold ( int errorThreshold );
|
||||
// PURPOSE: allow the caller to specify the minimum severity to report
|
||||
// REQUIRE: errorThreshold >=0
|
||||
// PROMISE: errors with severity < errorThreshold wil not be reported
|
||||
|
||||
virtual int attachErrorHandler (cdevErrorHandler handler);
|
||||
// PURPOSE: allow caller to attach error handler to trap error messages
|
||||
// REQUIRE: handler > 0
|
||||
// PROMISE: return CDEV_SUCCESS if this handler is attached to trap messgaes
|
||||
|
||||
virtual int detachErrorHandler (cdevErrorHandler handler);
|
||||
// PURPOSE: allow caller to dettach error handler
|
||||
// REQUIRE: handler > 0
|
||||
// PROMISE: return CDEV_SUCCESS if this handler is removed.
|
||||
|
||||
virtual void reportError (void *data,
|
||||
cdevRequestObject* obj);
|
||||
// PURPOSE: report error to somewhere with user defined data object.
|
||||
// This routine is intended for site developer use only to
|
||||
// support site wide error logging system.
|
||||
// REQUIRE: user whole string
|
||||
// PROMISE:
|
||||
|
||||
virtual const char *className(void) const {return "cdevError";}
|
||||
|
||||
protected:
|
||||
// constructers, avoiding direct instantation
|
||||
cdevError (void);
|
||||
cdevError (cdevErrorHandler handler);
|
||||
|
||||
// data areas
|
||||
cdevErrorHandler errorHandler_;
|
||||
static cdevErrorHandler defaultErrorHandler_;
|
||||
int autoErrorOn_;
|
||||
int threshold_;
|
||||
|
||||
// list of error handlers
|
||||
int numhandlers_;
|
||||
cdevErrorHandler handlers_[_CDEV_MAX_ERR_HANDLERS];
|
||||
};
|
||||
#endif
|
||||
Reference in New Issue
Block a user