Skip to content

Commit

Permalink
struct -> class normalization for various interface types
Browse files Browse the repository at this point in the history
  • Loading branch information
horenmar committed Apr 11, 2022
1 parent 1a56ba8 commit 8cdaebe
Show file tree
Hide file tree
Showing 23 changed files with 66 additions and 53 deletions.
2 changes: 1 addition & 1 deletion src/catch2/catch_test_case_info.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ namespace Catch {
friend bool operator==( Tag const& lhs, Tag const& rhs );
};

struct ITestInvoker;
class ITestInvoker;

enum class TestCaseProperties : uint8_t {
None = 0,
Expand Down
2 changes: 1 addition & 1 deletion src/catch2/catch_test_spec.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

namespace Catch {

struct IConfig;
class IConfig;
struct TestCaseInfo;
class TestCaseHandle;

Expand Down
3 changes: 2 additions & 1 deletion src/catch2/generators/catch_generators.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ namespace Detail {
} // end namespace detail

template<typename T>
struct IGenerator : GeneratorUntypedBase {
class IGenerator : public GeneratorUntypedBase {
public:
~IGenerator() override = default;
IGenerator() = default;
IGenerator(IGenerator const&) = default;
Expand Down
8 changes: 4 additions & 4 deletions src/catch2/interfaces/catch_interfaces_capture.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ namespace Catch {
struct AssertionReaction;
struct SourceLineInfo;

struct ITransientExpression;
struct IGeneratorTracker;
class ITransientExpression;
class IGeneratorTracker;

struct BenchmarkInfo;
template <typename Duration = std::chrono::duration<double, std::nano>>
struct BenchmarkStats;

struct IResultCapture {

class IResultCapture {
public:
virtual ~IResultCapture();

virtual bool sectionStarted( SectionInfo const& sectionInfo,
Expand Down
4 changes: 2 additions & 2 deletions src/catch2/interfaces/catch_interfaces_config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ namespace Catch {
class TestSpec;
class IStream;

struct IConfig : Detail::NonCopyable {

class IConfig : public Detail::NonCopyable {
public:
virtual ~IConfig();

virtual bool allowThrows() const = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ namespace Catch {
};
} // namespace Detail

struct IMutableEnumValuesRegistry {
class IMutableEnumValuesRegistry {
public:
virtual ~IMutableEnumValuesRegistry(); // = default;

virtual Detail::EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::vector<int> const& values ) = 0;
Expand Down
9 changes: 5 additions & 4 deletions src/catch2/interfaces/catch_interfaces_exception.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,18 @@
namespace Catch {
using exceptionTranslateFunction = std::string(*)();

struct IExceptionTranslator;
class IExceptionTranslator;
using ExceptionTranslators = std::vector<Detail::unique_ptr<IExceptionTranslator const>>;

struct IExceptionTranslator {
class IExceptionTranslator {
public:
virtual ~IExceptionTranslator(); // = default
virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
};

struct IExceptionTranslatorRegistry {
class IExceptionTranslatorRegistry {
public:
virtual ~IExceptionTranslatorRegistry(); // = default

virtual std::string translateActiveException() const = 0;
};

Expand Down
3 changes: 2 additions & 1 deletion src/catch2/interfaces/catch_interfaces_generatortracker.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ namespace Catch {

} // namespace Generators

struct IGeneratorTracker {
class IGeneratorTracker {
public:
virtual ~IGeneratorTracker(); // = default;
virtual auto hasGenerator() const -> bool = 0;
virtual auto getGenerator() const -> Generators::GeneratorBasePtr const& = 0;
Expand Down
22 changes: 12 additions & 10 deletions src/catch2/interfaces/catch_interfaces_registry_hub.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,23 @@ namespace Catch {

class TestCaseHandle;
struct TestCaseInfo;
struct ITestCaseRegistry;
struct IExceptionTranslatorRegistry;
struct IExceptionTranslator;
struct IReporterRegistry;
struct IReporterFactory;
struct ITagAliasRegistry;
struct ITestInvoker;
struct IMutableEnumValuesRegistry;
class ITestCaseRegistry;
class IExceptionTranslatorRegistry;
class IExceptionTranslator;
class IReporterRegistry;
class IReporterFactory;
class ITagAliasRegistry;
class ITestInvoker;
class IMutableEnumValuesRegistry;
struct SourceLineInfo;

class StartupExceptionRegistry;
class EventListenerFactory;

using IReporterFactoryPtr = Detail::unique_ptr<IReporterFactory>;

struct IRegistryHub {
class IRegistryHub {
public:
virtual ~IRegistryHub(); // = default

virtual IReporterRegistry const& getReporterRegistry() const = 0;
Expand All @@ -43,7 +44,8 @@ namespace Catch {
virtual StartupExceptionRegistry const& getStartupExceptionRegistry() const = 0;
};

struct IMutableRegistryHub {
class IMutableRegistryHub {
public:
virtual ~IMutableRegistryHub(); // = default
virtual void registerReporter( std::string const& name, IReporterFactoryPtr factory ) = 0;
virtual void registerListener( Detail::unique_ptr<EventListenerFactory> factory ) = 0;
Expand Down
2 changes: 1 addition & 1 deletion src/catch2/interfaces/catch_interfaces_reporter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ namespace Catch {
struct TagInfo;
struct TestCaseInfo;
class TestCaseHandle;
struct IConfig;
class IConfig;
class IStream;
enum class ColourMode : std::uint8_t;

Expand Down
5 changes: 3 additions & 2 deletions src/catch2/interfaces/catch_interfaces_reporter_factory.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
namespace Catch {

struct ReporterConfig;
struct IConfig;
class IConfig;
class IEventListener;
using IEventListenerPtr = Detail::unique_ptr<IEventListener>;


struct IReporterFactory {
class IReporterFactory {
public:
virtual ~IReporterFactory(); // = default

virtual IEventListenerPtr
Expand Down
7 changes: 4 additions & 3 deletions src/catch2/interfaces/catch_interfaces_reporter_registry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,17 @@

namespace Catch {

struct IConfig;
class IConfig;

class IEventListener;
using IEventListenerPtr = Detail::unique_ptr<IEventListener>;
struct IReporterFactory;
class IReporterFactory;
using IReporterFactoryPtr = Detail::unique_ptr<IReporterFactory>;
struct ReporterConfig;
class EventListenerFactory;

struct IReporterRegistry {
class IReporterRegistry {
public:
using FactoryMap = std::map<std::string, IReporterFactoryPtr, Detail::CaseInsensitiveLess>;
using Listeners = std::vector<Detail::unique_ptr<EventListenerFactory>>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ namespace Catch {

struct TagAlias;

struct ITagAliasRegistry {
class ITagAliasRegistry {
public:
virtual ~ITagAliasRegistry(); // = default
// Nullptr if not present
virtual TagAlias const* find( std::string const& alias ) const = 0;
Expand Down
8 changes: 5 additions & 3 deletions src/catch2/interfaces/catch_interfaces_testcase.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,17 @@ namespace Catch {
class TestSpec;
struct TestCaseInfo;

struct ITestInvoker {
class ITestInvoker {
public:
virtual void invoke () const = 0;
virtual ~ITestInvoker(); // = default
};

class TestCaseHandle;
struct IConfig;
class IConfig;

struct ITestCaseRegistry {
class ITestCaseRegistry {
public:
virtual ~ITestCaseRegistry(); // = default
// TODO: this exists only for adding filenames to test cases -- let's expose this in a saner way later
virtual std::vector<TestCaseInfo* > const& getAllInfos() const = 0;
Expand Down
2 changes: 1 addition & 1 deletion src/catch2/internal/catch_assertion_handler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
namespace Catch {

struct AssertionResultData;
struct IResultCapture;
class IResultCapture;
class RunContext;

struct AssertionReaction {
Expand Down
2 changes: 1 addition & 1 deletion src/catch2/internal/catch_console_colour.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
namespace Catch {

enum class ColourMode : std::uint8_t;
struct IConfig;
class IConfig;
class IStream;

struct Colour {
Expand Down
12 changes: 6 additions & 6 deletions src/catch2/internal/catch_context.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@

namespace Catch {

struct IResultCapture;
struct IConfig;
class IResultCapture;
class IConfig;

struct IContext
{
class IContext {
public:
virtual ~IContext(); // = default

virtual IResultCapture* getResultCapture() = 0;
virtual IConfig const* getConfig() const = 0;
};

struct IMutableContext : IContext
{
class IMutableContext : public IContext {
public:
virtual ~IMutableContext(); // = default
virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
virtual void setConfig( IConfig const* config ) = 0;
Expand Down
8 changes: 5 additions & 3 deletions src/catch2/internal/catch_decomposer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@

namespace Catch {

struct ITransientExpression {
class ITransientExpression {
bool m_isBinaryExpression;
bool m_result;

public:
auto isBinaryExpression() const -> bool { return m_isBinaryExpression; }
auto getResult() const -> bool { return m_result; }
virtual void streamReconstructedExpression( std::ostream &os ) const = 0;
Expand All @@ -51,8 +55,6 @@ namespace Catch {
// complain if it's not here :-(
virtual ~ITransientExpression(); // = default;

bool m_isBinaryExpression;
bool m_result;
friend std::ostream& operator<<(std::ostream& out, ITransientExpression const& expr) {
expr.streamReconstructedExpression(out);
return out;
Expand Down
2 changes: 1 addition & 1 deletion src/catch2/internal/catch_lazy_expr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

namespace Catch {

struct ITransientExpression;
class ITransientExpression;

class LazyExpression {
friend class AssertionHandler;
Expand Down
6 changes: 3 additions & 3 deletions src/catch2/internal/catch_run_context.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@

namespace Catch {

struct IMutableContext;
struct IGeneratorTracker;
struct IConfig;
class IMutableContext;
class IGeneratorTracker;
class IConfig;

///////////////////////////////////////////////////////////////////////////

Expand Down
2 changes: 1 addition & 1 deletion src/catch2/internal/catch_test_case_registry_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
namespace Catch {

class TestCaseHandle;
struct IConfig;
class IConfig;
class TestSpec;

std::vector<TestCaseHandle> sortTests( IConfig const& config, std::vector<TestCaseHandle> const& unsortedTestCases );
Expand Down
2 changes: 1 addition & 1 deletion src/catch2/internal/catch_test_spec_parser.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

namespace Catch {

struct ITagAliasRegistry;
class ITagAliasRegistry;

class TestSpecParser {
enum Mode{ None, Name, QuotedName, Tag, EscapedName };
Expand Down
2 changes: 1 addition & 1 deletion src/catch2/reporters/catch_reporter_helpers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

namespace Catch {

struct IConfig;
class IConfig;
class TestCaseHandle;
class ColourImpl;

Expand Down

0 comments on commit 8cdaebe

Please sign in to comment.