diff options
Diffstat (limited to 'ACE/ACEXML/common/Env.h')
-rw-r--r-- | ACE/ACEXML/common/Env.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/ACE/ACEXML/common/Env.h b/ACE/ACEXML/common/Env.h new file mode 100644 index 00000000000..c17bba6a4bc --- /dev/null +++ b/ACE/ACEXML/common/Env.h @@ -0,0 +1,72 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Env.h + * + * $Id$ + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ +//============================================================================= + +#ifndef _ACEXML_ENV_H_ +#define _ACEXML_ENV_H_ + +#include /**/ "ace/pre.h" +#include "ACEXML/common/ACEXML_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ACEXML/common/XML_Macros.h" +#include "ACEXML/common/Exception.h" + +/** + * @class ACEXML_Env Env.h "ACEXML/common/Env.h" + * + * @brief ACEXML_Env + * + * ACEXML_Env is modeled after CORBA_Environment class. It provides a place + * holder for callees to propagate exceptions back to callers. ACEXML does + * not support native exceptions at this moment. + * + * @sa ACEXML_Exception + */ +class ACEXML_Export ACEXML_Env +{ +public: + /// Default constructor. + ACEXML_Env (void); + + /// Copy constructor. + ACEXML_Env (const ACEXML_Env& ACEXML_TRY_ENV); + + /// Assignment + ACEXML_Env& operator= (const ACEXML_Env& ACEXML_TRY_ENV); + + /// Destructor. + ~ACEXML_Env (void); + + /// Return the contained exception. + ACEXML_Exception *exception (void) const; + + /// Set the contained exception to @arg ex + void exception (ACEXML_Exception* ex); + + /// Clear the exception and reset the evnrionment. + void clear (void); + +private: + /// Place holder for exception (if one occurs.) + ACEXML_Exception *exception_; +}; + +#if defined (__ACEXML_INLINE__) +# include "ACEXML/common/Env.i" +#endif /* __ACEXML_INLINE__ */ + +#include /**/ "ace/post.h" + +#endif /* _ACEXML_ENV_H_ */ |