| 
									
										
										
										
											2012-05-10 07:58:48 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  *  Created by Phil on 31/12/2010. | 
					
						
							|  |  |  |  *  Copyright 2010 Two Blue Cubes Ltd. All rights reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  Distributed under the Boost Software License, Version 1.0. (See accompanying | 
					
						
							|  |  |  |  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
 | 
					
						
							|  |  |  | #define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-07 08:18:48 +01:00
										 |  |  | #include "catch_interfaces_generators.h"
 | 
					
						
							| 
									
										
										
										
											2012-05-10 07:58:48 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <memory>
 | 
					
						
							|  |  |  | #include <vector>
 | 
					
						
							|  |  |  | #include <stdlib.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-15 23:58:23 +01:00
										 |  |  | namespace Catch { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-10 07:58:48 +01:00
										 |  |  |     class TestCaseInfo; | 
					
						
							|  |  |  |     struct IResultCapture; | 
					
						
							|  |  |  |     struct IRunner; | 
					
						
							| 
									
										
										
										
											2012-08-07 08:18:48 +01:00
										 |  |  |     struct IGeneratorsForTest; | 
					
						
							| 
									
										
										
										
											2012-08-28 08:20:18 +01:00
										 |  |  |     struct IConfig; | 
					
						
							| 
									
										
										
										
											2012-05-10 07:58:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-13 07:46:10 +01:00
										 |  |  |     class StreamBufBase : public std::streambuf { | 
					
						
							|  |  |  |     public: | 
					
						
							|  |  |  |         virtual ~StreamBufBase(); | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2012-05-10 07:58:48 +01:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-05-21 18:52:09 +01:00
										 |  |  |     struct IContext | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2012-08-13 07:46:10 +01:00
										 |  |  |         virtual ~IContext(); | 
					
						
							| 
									
										
										
										
											2012-05-25 08:52:05 +01:00
										 |  |  |          | 
					
						
							| 
									
										
										
										
											2012-05-21 18:52:09 +01:00
										 |  |  |         virtual IResultCapture& getResultCapture() = 0; | 
					
						
							|  |  |  |         virtual IRunner& getRunner() = 0; | 
					
						
							|  |  |  |         virtual size_t getGeneratorIndex( const std::string& fileInfo, size_t totalSize ) = 0; | 
					
						
							|  |  |  |         virtual bool advanceGeneratorsForCurrentTest() = 0; | 
					
						
							| 
									
										
										
										
											2012-06-05 20:50:47 +01:00
										 |  |  |         virtual const IConfig* getConfig() const = 0; | 
					
						
							| 
									
										
										
										
											2012-05-21 18:52:09 +01:00
										 |  |  |     }; | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     struct IMutableContext : IContext | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2012-08-13 07:46:10 +01:00
										 |  |  |         virtual ~IMutableContext(); | 
					
						
							| 
									
										
										
										
											2012-05-21 18:52:09 +01:00
										 |  |  |         virtual void setResultCapture( IResultCapture* resultCapture ) = 0; | 
					
						
							|  |  |  |         virtual void setRunner( IRunner* runner ) = 0; | 
					
						
							| 
									
										
										
										
											2012-06-05 20:50:47 +01:00
										 |  |  |         virtual void setConfig( const IConfig* config ) = 0; | 
					
						
							| 
									
										
										
										
											2012-05-21 18:52:09 +01:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     IContext& getCurrentContext(); | 
					
						
							| 
									
										
										
										
											2012-08-08 08:33:54 +01:00
										 |  |  |     IMutableContext& getCurrentMutableContext(); | 
					
						
							|  |  |  |     void cleanUpContext(); | 
					
						
							|  |  |  |     std::streambuf* createStreamBuf( const std::string& streamName ); | 
					
						
							| 
									
										
										
										
											2012-05-21 18:52:09 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-10 07:58:48 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
 |