00001
#ifndef CPPUNIT_PROTECTORCHAIN_H
00002
#define CPPUNIT_PROTECTORCHAIN_H
00003
00004
#include <cppunit/Protector.h>
00005
#include <cppunit/portability/CppUnitDeque.h>
00006
00007
#if CPPUNIT_NEED_DLL_DECL
00008
#pragma warning( push )
00009
#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
00010
#endif
00011
00012
00013
CPPUNIT_NS_BEGIN
00014
00019 class CPPUNIT_API ProtectorChain :
public Protector
00020 {
00021
public:
00022 ~ProtectorChain();
00023
00024
void push(
Protector *protector );
00025
00026
void pop();
00027
00028
int count()
const;
00029
00030
bool protect(
const Functor &functor,
00031
const ProtectorContext &context );
00032
00033
private:
00034
class ProtectFunctor;
00035
00036
private:
00037 typedef CppUnitDeque<Protector *> Protectors;
00038 Protectors m_protectors;
00039
00040 typedef CppUnitDeque<Functor *>
Functors;
00041 };
00042
00043
00044
CPPUNIT_NS_END
00045
00046
#if CPPUNIT_NEED_DLL_DECL
00047
#pragma warning( pop )
00048
#endif
00049
00050
#endif // CPPUNIT_PROTECTORCHAIN_H
00051