Vesna
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
BusinessLogicManager.h
Go to the documentation of this file.
1 #ifndef BUSINESSLOGICDISPATCHER_H
2 #define BUSINESSLOGICDISPATCHER_H
3 
4 #include <QScopedPointer>
5 #include "BusinessLogic.h"
6 
8 {
9 public:
11 
12  void AddBusinessLogic( BusinessLogic *businessLogic );
13 
14  template <typename TBusinessLogic>
15  TBusinessLogic *GetBusinessLogic() const
16  {
17  static_assert( std::is_base_of<BusinessLogic, TBusinessLogic>::value, "TBusinessLogic does not inherit from BusinessLogic" );
18  return static_cast<TBusinessLogic*>( GetBusinessLogicByType( TBusinessLogic::mBusinessLogicType ) );
19  }
20 
21 private:
23 
24  friend class ApplicationStateManager;
25 
26  BusinessLogicManager( ApplicationDefines::BusinessLogicLifeTimeType dispatcherLifetimeType = ApplicationDefines::LifeTimeTransient, BusinessLogicManager *persistentBusinessLogicDispatcher = NULL ) ;
27 
28  BusinessLogic *GetBusinessLogicByType( ApplicationDefines::BusinessLogicType businessLogicType ) const;
29 
30  class DataClass;
31  QScopedPointer<DataClass> d;
32 
34 };
35 
36 #endif // BUSINESSLOGICDISPATCHER_H
Definition: ApplicationStateManager.h:43
~BusinessLogicManager()
Definition: BusinessLogicManager.cpp:103
The BusinessLogic class is the base class of all business logic classes. Every inherited class has to...
Definition: BusinessLogic.h:11
TBusinessLogic * GetBusinessLogic() const
Definition: BusinessLogicManager.h:15
Definition: ApplicationDefines.h:182
Definition: BusinessLogicManager.h:7
BusinessLogicLifeTimeType
Definition: ApplicationDefines.h:178
BusinessLogicType
Definition: ApplicationDefines.h:186
void AddBusinessLogic(BusinessLogic *businessLogic)
Definition: BusinessLogicManager.cpp:71