File indexing completed on 2024-04-14 03:53:50
0001 /* 0002 SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.net> 0003 SPDX-FileContributor: Stephen Kelly <stephen@kdab.com> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef EVENTLOGGERREGISTER_H 0009 #define EVENTLOGGERREGISTER_H 0010 0011 #include <QList> 0012 0013 #include <memory> 0014 0015 #include "proxymodeltestsuite_export.h" 0016 0017 class ModelEventLogger; 0018 0019 class PROXYMODELTESTSUITE_EXPORT EventLoggerRegister 0020 { 0021 public: 0022 enum Behaviour { 0023 InstallMsgHandler, 0024 NoInstallMsgHandler, 0025 }; 0026 0027 ~EventLoggerRegister(); 0028 0029 static EventLoggerRegister *instance(Behaviour behaviour = InstallMsgHandler); 0030 0031 void registerLogger(ModelEventLogger *logger); 0032 void unregisterLogger(ModelEventLogger *logger); 0033 0034 void writeLogs(); 0035 0036 private: 0037 EventLoggerRegister(Behaviour behaviour); 0038 QList<ModelEventLogger *> m_loggers; 0039 0040 static EventLoggerRegister *s_instance; 0041 0042 static std::unique_ptr<EventLoggerRegister> s_destroyer; 0043 Q_DISABLE_COPY(EventLoggerRegister) 0044 }; 0045 0046 #endif