00001 from Signal import Signal 00002 00003 class Action(object): 00004 00005 def __init__(self): 00006 super(Action, self).__init__() 00007 self._duration = 3.0 00008 self.execute_finished_signal = Signal() 00009 00010 def get_duration(self): 00011 return self._duration 00012 00013 def set_duration(self, duration): 00014 self._duration = duration 00015 00016 #@abstractmethod 00017 def to_string(self): 00018 pass 00019 00020 def deepcopy(self): 00021 action = self.__class__() 00022 action._duration = self._duration 00023 return action 00024 00025 def serialize(self, stream): 00026 stream.serialize_data(self._duration) 00027 00028 def deserialize(self, stream): 00029 self._duration = stream.deserialize_data() 00030 00031 #@abstractmethod 00032 def execute(self): 00033 pass 00034 00035 def _execute_finished(self): 00036 self.execute_finished_signal.emit()