diff --git a/demoIsoObject.cpp b/demoIsoObject.cpp index 2cb9c45..c508021 100644 --- a/demoIsoObject.cpp +++ b/demoIsoObject.cpp @@ -113,12 +113,12 @@ class myObject : public ISO22133::TestObject { * * @return ISO22133::Disarmed* */ - ISO22133::Disarmed* createDisarmed() const override { - return dynamic_cast(new myDisarmed); + std::unique_ptr createDisarmed() const override { + return std::make_unique(); } - ISO22133::PreArming* createPreArming() const override { - return dynamic_cast(new myPreArming); + std::unique_ptr createPreArming() const override { + return std::make_unique(); } //! overridden on*message* function. diff --git a/inc/iso22133object.hpp b/inc/iso22133object.hpp index 31d0f87..b11ee52 100644 --- a/inc/iso22133object.hpp +++ b/inc/iso22133object.hpp @@ -171,48 +171,48 @@ class TestObject { // Example of override: // return dynamic_cast(new myPreArming); //! Must be overridden if modifying the Unknown state - virtual Unknown* createUnknown() const { - return new Unknown; + virtual std::unique_ptr createUnknown() const { + return std::make_unique(); } //! Must be overridden if modifying the Off state - virtual Off* createOff() const { - return new Off; + virtual std::unique_ptr createOff() const { + return std::make_unique(); } //! Must be overridden if modifying the Init state - virtual Init* createInit() const { - return new Init; + virtual std::unique_ptr createInit() const { + return std::make_unique(); } //! Must be overridden if modifying the Armed state - virtual Armed* createArmed() const { - return new Armed; + virtual std::unique_ptr createArmed() const { + return std::make_unique(); } //! Must be overridden if modifying the Disarmed state - virtual Disarmed* createDisarmed() const { - return new Disarmed; + virtual std::unique_ptr createDisarmed() const { + return std::make_unique(); } //! Must be overridden if modifying the Running state - virtual Running* createRunning() const { - return new Running; + virtual std::unique_ptr createRunning() const { + return std::make_unique(); } //! Must be overridden if modifying the Postrun state - virtual PostRun* createPostRun() const { - return new PostRun; + virtual std::unique_ptr createPostRun() const { + return std::make_unique(); } //! Must be overridden if modifying the Remote Controlled state - virtual RemoteControlled* createRemoteControlled() const { - return new RemoteControlled; + virtual std::unique_ptr createRemoteControlled() const { + return std::make_unique(); } //! Must be overridden if modifying the Abort state - virtual Aborting* createAborting() const { - return new Aborting; + virtual std::unique_ptr createAborting() const { + return std::make_unique(); } //! Must be overridden if modifying the Pre-Arm state - virtual PreArming* createPreArming() const { - return new PreArming; + virtual std::unique_ptr createPreArming() const { + return std::make_unique(); } //! Must be overridden if modifying the Pre-Running state - virtual PreRunning* createPreRunning() const { - return new PreRunning; + virtual std::unique_ptr createPreRunning() const { + return std::make_unique(); } //! Signals for events @@ -243,7 +243,7 @@ class TestObject { //! Used to get estimated network delay std::chrono::milliseconds getNetworkDelay(); - ISO22133::State* state; + std::unique_ptr state; private: //! Initializer for commonalities of the constructs diff --git a/src/iso22133state.cpp b/src/iso22133state.cpp index 986e9d0..8e21bbe 100644 --- a/src/iso22133state.cpp +++ b/src/iso22133state.cpp @@ -24,7 +24,6 @@ void ISO22133::State::handleEvent(TestObject& obj, const ISO22133::Events::Event std::cout << "Leaving state: " << obj.state->getName() << std::endl; obj.state->onExit(obj); - State* temp = obj.state; switch (transition->target) { case ISO_OBJECT_STATE_OFF: @@ -63,7 +62,6 @@ void ISO22133::State::handleEvent(TestObject& obj, const ISO22133::Events::Event obj.state = obj.createUnknown(); break; } - delete temp; std::cout << "Entering state: " << obj.state->getName() << std::endl; obj.stateChangeSig();