.
This commit is contained in:
@@ -47,7 +47,8 @@ class Object
|
|||||||
*/
|
*/
|
||||||
template<class _Service>
|
template<class _Service>
|
||||||
class Service
|
class Service
|
||||||
: public virtual interface::Service {
|
: public virtual interface::Service,
|
||||||
|
public Object {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -88,8 +89,8 @@ template <class... _Args> class Observable {};
|
|||||||
* Convenience template merging the Object class and the Observable template into a single template.
|
* Convenience template merging the Object class and the Observable template into a single template.
|
||||||
*/
|
*/
|
||||||
template<class... _Args> class ObservableObject
|
template<class... _Args> class ObservableObject
|
||||||
: public virtual Object,
|
: public Object,
|
||||||
public virtual Observable<_Args...> {};
|
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.
|
* Convenience template merging the Service class and the Observable template into a single template.
|
||||||
*/
|
*/
|
||||||
template<class _Service, class... _Args> class ObservableService
|
template<class _Service, class... _Args> class ObservableService
|
||||||
: public virtual Service<_Service>,
|
: public Service<_Service>,
|
||||||
public virtual Observable<_Args...> {};
|
public Observable<_Args...> {};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ namespace interface {
|
|||||||
class Object {
|
class Object {
|
||||||
public:
|
public:
|
||||||
virtual ~Object() {}
|
virtual ~Object() {}
|
||||||
|
|
||||||
|
template<class T> T* castPtr() {
|
||||||
|
return dynamic_cast<T*>(this);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace core {
|
|||||||
*/
|
*/
|
||||||
class CoreServiceImpl
|
class CoreServiceImpl
|
||||||
: public virtual CoreService,
|
: public virtual CoreService,
|
||||||
public virtual implementation::ObservableService<CoreServiceImpl, CoreServiceEvent> {
|
public implementation::ObservableService<CoreServiceImpl, CoreServiceEvent> {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -59,7 +59,7 @@ class DeviceRepositoryServiceImpl;
|
|||||||
**/
|
**/
|
||||||
class DeviceImpl
|
class DeviceImpl
|
||||||
: public virtual Device,
|
: public virtual Device,
|
||||||
public virtual implementation::ObservableObject<DeviceEventType, DeviceEvent> {
|
public implementation::ObservableObject<DeviceEventType, DeviceEvent> {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ public:
|
|||||||
**/
|
**/
|
||||||
class DeviceRepositoryServiceImpl
|
class DeviceRepositoryServiceImpl
|
||||||
: public virtual DeviceRepositoryService,
|
: public virtual DeviceRepositoryService,
|
||||||
public virtual implementation::ObservableService<DeviceRepositoryServiceImpl, DeviceEventType, DeviceEvent> {
|
public implementation::ObservableService<DeviceRepositoryServiceImpl, DeviceEventType, DeviceEvent> {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef std::map<std::string, std::shared_ptr<DeviceImpl>> devicesMap_t;
|
typedef std::map<std::string, std::shared_ptr<DeviceImpl>> devicesMap_t;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class RulePackageImpl;
|
|||||||
|
|
||||||
class RuleEngineServiceImpl :
|
class RuleEngineServiceImpl :
|
||||||
public virtual RuleEngineService,
|
public virtual RuleEngineService,
|
||||||
public virtual implementation::Service<RuleEngineServiceImpl> {
|
public implementation::Service<RuleEngineServiceImpl> {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef std::map<std::string, std::shared_ptr<rules::RulePackageImpl>> rulePkgMap_t;
|
typedef std::map<std::string, std::shared_ptr<rules::RulePackageImpl>> rulePkgMap_t;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public:
|
|||||||
static std::shared_ptr<RuleImpl> createRule(RulePackageImpl* parent, const std::string name, Variant raw);
|
static std::shared_ptr<RuleImpl> createRule(RulePackageImpl* parent, const std::string name, Variant raw);
|
||||||
|
|
||||||
virtual RulePackage* getParent() noexcept {
|
virtual RulePackage* getParent() noexcept {
|
||||||
return dynamic_cast<RulePackage*>(parent);
|
return parent->castPtr<RulePackage>();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const std::string& getName() noexcept {
|
virtual const std::string& getName() noexcept {
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public:
|
|||||||
const std::string language;
|
const std::string language;
|
||||||
|
|
||||||
virtual service::ruleengine::RuleEngineService* getParent() noexcept override {
|
virtual service::ruleengine::RuleEngineService* getParent() noexcept override {
|
||||||
return dynamic_cast<service::ruleengine::RuleEngineService*>(parent);
|
return parent->castPtr<service::ruleengine::RuleEngineService>();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const std::string& getName() noexcept override {
|
virtual const std::string& getName() noexcept override {
|
||||||
|
|||||||
+3
-3
@@ -75,7 +75,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
class DeviceStatusMsgConditionFactory
|
class DeviceStatusMsgConditionFactory
|
||||||
: public RuleConditionFactory {
|
: public virtual RuleConditionFactory {
|
||||||
public:
|
public:
|
||||||
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
||||||
};
|
};
|
||||||
@@ -98,7 +98,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
class DeviceCommandMsgConditionFactory
|
class DeviceCommandMsgConditionFactory
|
||||||
: public RuleConditionFactory {
|
: public virtual RuleConditionFactory {
|
||||||
public:
|
public:
|
||||||
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
||||||
};
|
};
|
||||||
@@ -125,7 +125,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
class DeviceStateChangeConditionFactory
|
class DeviceStateChangeConditionFactory
|
||||||
: public RuleConditionFactory {
|
: public virtual RuleConditionFactory {
|
||||||
public:
|
public:
|
||||||
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
class LogicalAndConditionFactory
|
class LogicalAndConditionFactory
|
||||||
: public RuleConditionFactory {
|
: public virtual RuleConditionFactory {
|
||||||
public:
|
public:
|
||||||
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
class LogicalOrConditionFactory
|
class LogicalOrConditionFactory
|
||||||
: public RuleConditionFactory {
|
: public virtual RuleConditionFactory {
|
||||||
public:
|
public:
|
||||||
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
virtual std::shared_ptr<RuleCondition> createCondition(rules::Rule* parent, const Variant& raw) override;
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -104,7 +104,7 @@ public:
|
|||||||
**/
|
**/
|
||||||
class PyScriptingService
|
class PyScriptingService
|
||||||
: public virtual service::scripting::ScriptingService,
|
: public virtual service::scripting::ScriptingService,
|
||||||
public virtual implementation::Service<PyScriptingService> {
|
public implementation::Service<PyScriptingService> {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ namespace webserver {
|
|||||||
class WebServerServiceImpl;
|
class WebServerServiceImpl;
|
||||||
class WebServerServiceImpl :
|
class WebServerServiceImpl :
|
||||||
public virtual WebServerService,
|
public virtual WebServerService,
|
||||||
public virtual implementation::Service<WebServerServiceImpl> {
|
public implementation::Service<WebServerServiceImpl> {
|
||||||
private:
|
private:
|
||||||
|
|
||||||
service::core::CoreService* coreService = nullptr;
|
service::core::CoreService* coreService = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user