提交 3ae20665 编写于 作者: R Roger A. Light

Simplify message states.

Change-Id: Ic81bcceed68303216402ce755dbc38380174965a
上级 849f7433
...@@ -100,18 +100,16 @@ mqtt_cs_disconnecting = 2 ...@@ -100,18 +100,16 @@ mqtt_cs_disconnecting = 2
mqtt_cs_connect_async = 3 mqtt_cs_connect_async = 3
# Message state # Message state
mqtt_ms_invalid = 0, mqtt_ms_invalid = 0
mqtt_ms_publish_qos0 = 1 mqtt_ms_publish= 1
mqtt_ms_publish_qos1 = 2 mqtt_ms_wait_for_puback = 2
mqtt_ms_wait_for_puback = 3 mqtt_ms_wait_for_pubrec = 3
mqtt_ms_publish_qos2 = 4 mqtt_ms_resend_pubrel = 4
mqtt_ms_wait_for_pubrec = 5 mqtt_ms_wait_for_pubrel = 5
mqtt_ms_resend_pubrel = 6 mqtt_ms_resend_pubcomp = 6
mqtt_ms_wait_for_pubrel = 7 mqtt_ms_wait_for_pubcomp = 7
mqtt_ms_resend_pubcomp = 8 mqtt_ms_send_pubrec = 8
mqtt_ms_wait_for_pubcomp = 9 mqtt_ms_queued = 9
mqtt_ms_send_pubrec = 10
mqtt_ms_queued = 11
# Error values # Error values
MQTT_ERR_AGAIN = -1 MQTT_ERR_AGAIN = -1
...@@ -914,10 +912,7 @@ class Client(object): ...@@ -914,10 +912,7 @@ class Client(object):
if rc is MQTT_ERR_NO_CONN: if rc is MQTT_ERR_NO_CONN:
with self._out_message_mutex: with self._out_message_mutex:
self._inflight_messages -= 1 self._inflight_messages -= 1
if qos == 1: message.state = mqtt_ms_publish
message.state = mqtt_ms_publish_qos1
elif qos == 2:
message.state = mqtt_ms_publish_qos2
return (rc, local_mid) return (rc, local_mid)
else: else:
...@@ -1850,12 +1845,12 @@ class Client(object): ...@@ -1850,12 +1845,12 @@ class Client(object):
m.timestamp = 0 m.timestamp = 0
if self._max_inflight_messages == 0 or self._inflight_messages < self._max_inflight_messages: if self._max_inflight_messages == 0 or self._inflight_messages < self._max_inflight_messages:
if m.qos == 0: if m.qos == 0:
m.state = mqtt_ms_publish_qos0 m.state = mqtt_ms_publish
elif m.qos == 1: elif m.qos == 1:
#self._inflight_messages = self._inflight_messages + 1 #self._inflight_messages = self._inflight_messages + 1
if m.state == mqtt_ms_wait_for_puback: if m.state == mqtt_ms_wait_for_puback:
m.dup = True m.dup = True
m.state = mqtt_ms_publish_qos1 m.state = mqtt_ms_publish
elif m.qos == 2: elif m.qos == 2:
#self._inflight_messages = self._inflight_messages + 1 #self._inflight_messages = self._inflight_messages + 1
if m.state == mqtt_ms_wait_for_pubcomp: if m.state == mqtt_ms_wait_for_pubcomp:
...@@ -1864,7 +1859,7 @@ class Client(object): ...@@ -1864,7 +1859,7 @@ class Client(object):
else: else:
if m.state == mqtt_ms_wait_for_pubrec: if m.state == mqtt_ms_wait_for_pubrec:
m.dup = True m.dup = True
m.state = mqtt_ms_publish_qos2 m.state = mqtt_ms_publish
else: else:
m.state = mqtt_ms_queued m.state = mqtt_ms_queued
self._out_message_mutex.release() self._out_message_mutex.release()
...@@ -2010,7 +2005,7 @@ class Client(object): ...@@ -2010,7 +2005,7 @@ class Client(object):
self._out_message_mutex.release() self._out_message_mutex.release()
return rc return rc
elif m.qos == 1: elif m.qos == 1:
if m.state == mqtt_ms_publish_qos1: if m.state == mqtt_ms_publish:
self._inflight_messages = self._inflight_messages + 1 self._inflight_messages = self._inflight_messages + 1
m.state = mqtt_ms_wait_for_puback m.state = mqtt_ms_wait_for_puback
rc = self._send_publish(m.mid, m.topic, m.payload, m.qos, m.retain, m.dup) rc = self._send_publish(m.mid, m.topic, m.payload, m.qos, m.retain, m.dup)
...@@ -2018,7 +2013,7 @@ class Client(object): ...@@ -2018,7 +2013,7 @@ class Client(object):
self._out_message_mutex.release() self._out_message_mutex.release()
return rc return rc
elif m.qos == 2: elif m.qos == 2:
if m.state == mqtt_ms_publish_qos2: if m.state == mqtt_ms_publish:
self._inflight_messages = self._inflight_messages + 1 self._inflight_messages = self._inflight_messages + 1
m.state = mqtt_ms_wait_for_pubrec m.state = mqtt_ms_wait_for_pubrec
rc = self._send_publish(m.mid, m.topic, m.payload, m.qos, m.retain, m.dup) rc = self._send_publish(m.mid, m.topic, m.payload, m.qos, m.retain, m.dup)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册