CppUnit project page | FAQ | CppUnit home page

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# Protector.h

Go to the documentation of this file.

    00001 #ifndef CPPUNIT_PROTECTOR_H
    00002 #define CPPUNIT_PROTECTOR_H
    00003
    00004 #include <cppunit/SourceLine.h>
    00005
    00006 CPPUNIT_NS_BEGIN
    00007
    00008 class Exception;
    00009 class Message;
    00010 class ProtectorContext;
    00011 class TestResult;
    00012
    00013
    00014 class CPPUNIT_API Functor
    00015 {
    00016 public:
    00017   virtual ~Functor();
    00018
    00019   virtual bool operator()() const =0;
    00020 };
    00021
    00022
    00047 class CPPUNIT_API Protector
    00048 {
    00049 public:
    00050   virtual ~Protector();
    00051
    00052   virtual bool protect( const Functor &functor,
    00053                         const ProtectorContext &context ) =0;
    00054
    00055 protected:
    00056   void reportError( const ProtectorContext &context,
    00057                     const Exception &error ) const;
    00058
    00059   void reportError( const ProtectorContext &context,
    00060                     const Message &message,
    00061                     const SourceLine &sourceLine = SourceLine() ) const;
    00062
    00063   void reportFailure( const ProtectorContext &context,
    00064                       const Exception &failure ) const;
    00065
    00066   Message actualMessage( const Message &message,
    00067                          const ProtectorContext &context ) const;
    00068 };
    00069
    00070
    00076 class CPPUNIT_API ProtectorGuard
    00077 {
    00078 public:
    00080   ProtectorGuard( TestResult *result,
    00081                   Protector *protector );
    00082
    00084   ~ProtectorGuard();
    00085
    00086 private:
    00087   TestResult *m_result;
    00088 };
    00089
    00090 CPPUNIT_NS_END
    00091
    00092
    00093 #endif // CPPUNIT_PROTECTOR_H
    00094

| hosts this site. |  | Send comments to: CppUnit Developers