![]() |
Eclipse SUMO - Simulation of Urban MObility
|
A wrapper for a Command function. More...
#include <WrappingCommand.h>
Public Types | |
typedef SUMOTime(T::* | Operation) (SUMOTime) |
Type of the function to execute. More... | |
Public Member Functions | |
void | deschedule () |
Marks this Command as being descheduled. More... | |
bool | isDescheduled () |
whether this command has been descheduled More... | |
WrappingCommand (T *receiver, Operation operation) | |
Constructor. More... | |
~WrappingCommand () | |
Destructor. More... | |
Derived from Command | |
SUMOTime | execute (SUMOTime currentTime) |
Executes the command. More... | |
Private Attributes | |
bool | myAmDescheduledByParent |
Whether this command was descheduled (is invalid) and shall not be executed. More... | |
Operation | myOperation |
The object's operation to perform. More... | |
T * | myReceiver |
The object the action is directed to. More... | |
A wrapper for a Command function.
In order to ease life, this class may encapsulate a method of a class which in order to be used as a Command. This allows to use a member methods of a class to be called as Commands are, avoiding that the instance itself is destroyed by the EventHandler.
Because in some cases, the Command may live longer than the instance class, a boolean value indicates that the Command is "descheduled". It should be set via "deschedule" as soon as the class instance of which a method is encapsulated is destroyed and forces that the command (calling of this instace's method) is not executed.
Definition at line 51 of file WrappingCommand.h.
typedef SUMOTime(T::* WrappingCommand< T >::Operation) (SUMOTime) |
Type of the function to execute.
Definition at line 54 of file WrappingCommand.h.
|
inline |
Constructor.
[in] | receiver | Pointer to object of type T that will receive a call to one of it's methods. |
[in] | operation | The objects' method that will be called on execute() |
Definition at line 64 of file WrappingCommand.h.
|
inline |
Destructor.
Definition at line 70 of file WrappingCommand.h.
|
inline |
Marks this Command as being descheduled.
A simple boolean marker ("myAmDescheduledByParent") is set which prevents this command from being executed.
Definition at line 78 of file WrappingCommand.h.
Referenced by MSDevice_ToC::awarenessRecoveryStep(), MSDevice_ToC::descheduleMRM(), MSDevice_ToC::descheduleRecovery(), MSDevice_ToC::descheduleToC(), MSDevice_ToC::descheduleToCPreparation(), MSDevice_Routing::notifyEnter(), MSTransportableDevice_Routing::setParameter(), MSDevice_Routing::setParameter(), MSDevice_Routing::~MSDevice_Routing(), MSDevice_ToC::~MSDevice_ToC(), and MSTransportableDevice_Routing::~MSTransportableDevice_Routing().
|
inlinevirtual |
Executes the command.
If the command is not descheduled, the stored method of the stored instance is called.
[in] | currentTime | The current simulation time |
ProcessError | Derived actions may throw this exception |
Implements Command.
Definition at line 100 of file WrappingCommand.h.
|
inline |
whether this command has been descheduled
Definition at line 83 of file WrappingCommand.h.
|
private |
Whether this command was descheduled (is invalid) and shall not be executed.
Definition at line 119 of file WrappingCommand.h.
Referenced by WrappingCommand< MSTransportableDevice_Routing >::deschedule(), WrappingCommand< MSTransportableDevice_Routing >::execute(), and WrappingCommand< MSTransportableDevice_Routing >::isDescheduled().
|
private |
The object's operation to perform.
Definition at line 116 of file WrappingCommand.h.
Referenced by WrappingCommand< MSTransportableDevice_Routing >::execute().
|
private |
The object the action is directed to.
Definition at line 113 of file WrappingCommand.h.
Referenced by WrappingCommand< MSTransportableDevice_Routing >::execute().