.
This commit is contained in:
@@ -47,7 +47,8 @@ class Object
|
||||
*/
|
||||
template<class _Service>
|
||||
class Service
|
||||
: public virtual interface::Service {
|
||||
: public virtual interface::Service,
|
||||
public Object {
|
||||
|
||||
public:
|
||||
|
||||
@@ -88,8 +89,8 @@ template <class... _Args> class Observable {};
|
||||
* Convenience template merging the Object class and the Observable template into a single template.
|
||||
*/
|
||||
template<class... _Args> class ObservableObject
|
||||
: public virtual Object,
|
||||
public virtual Observable<_Args...> {};
|
||||
: public Object,
|
||||
public Observable<_Args...> {};
|
||||
|
||||
|
||||
|
||||
@@ -97,8 +98,8 @@ template<class... _Args> class ObservableObject
|
||||
* Convenience template merging the Service class and the Observable template into a single template.
|
||||
*/
|
||||
template<class _Service, class... _Args> class ObservableService
|
||||
: public virtual Service<_Service>,
|
||||
public virtual Observable<_Args...> {};
|
||||
: public Service<_Service>,
|
||||
public Observable<_Args...> {};
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -24,6 +24,10 @@ namespace interface {
|
||||
class Object {
|
||||
public:
|
||||
virtual ~Object() {}
|
||||
|
||||
template<class T> T* castPtr() {
|
||||
return dynamic_cast<T*>(this);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace core {
|
||||
*/
|
||||
class CoreServiceImpl
|
||||
: public virtual CoreService,
|
||||
public virtual implementation::ObservableService<CoreServiceImpl, CoreServiceEvent> {
|
||||
public implementation::ObservableService<CoreServiceImpl, CoreServiceEvent> {
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user