00001 #ifndef _ERROR_COMPONENT_H
00002 #define _ERROR_COMPONENT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef __cplusplus
00033 #error This is a C++ include file and cannot be used from plain C
00034 #endif
00035
00038 #include <acscomponentImpl.h>
00039
00042 #include <ACSErrTypeCommon.h>
00043
00050 #include <acsexmplErrorComponentS.h>
00051
00052 using namespace acscomponent;
00053
00101 class ErrorComponent: public virtual ACSComponentImpl,
00102 public POA_acsexmplErrorComponent::ErrorComponent
00103 {
00104 public:
00113 ErrorComponent(
00114 const ACE_CString& name,
00115 maci::ContainerServices * containerServices);
00116
00120 virtual ~ErrorComponent();
00121
00122
00130 virtual void
00131 displayMessage ()
00132 throw (CORBA::SystemException);
00133
00142 virtual void
00143 badMethod(CORBA::Short depth)
00144 throw (CORBA::SystemException, ACSErrTypeCommon::GenericErrorEx);
00145
00155 virtual void
00156 exceptionFromCompletion(CORBA::Short depth)
00157 throw (CORBA::SystemException, ACSErrTypeCommon::GenericErrorEx);
00158
00173 virtual void typeException(CORBA::Short depth)
00174 throw (CORBA::SystemException,
00175 ACSErrTypeCommon::GenericErrorEx,
00176 ACSErrTypeCommon::ACSErrTypeCommonEx);
00177
00178
00183 virtual void corbaSystemException() throw (CORBA::SystemException);
00184
00194 virtual ACSErr::Completion *completionFromException(CORBA::Short depth)
00195 throw (CORBA::SystemException);
00196
00206 virtual ACSErr::Completion *completionFromCompletion(CORBA::Short depth)
00207 throw (CORBA::SystemException);
00208
00218 ACSErr::Completion *ErrorComponent::completionOnStack(CORBA::Short depth)
00219 throw (CORBA::SystemException);
00220
00221 private:
00222
00230 virtual ACSErr::CompletionImpl *returnCompletion(unsigned short depth);
00231
00232
00246 virtual void
00247 buildErrorTrace(unsigned short depth)
00248 throw (ACSErrTypeCommon::GenericErrorExImpl);
00249
00250 };
00251
00252 #endif