From a71aef0016023eb8b80d7a17330cdd2d273d9654 Mon Sep 17 00:00:00 2001 From: Vincent Pelletier <vincent@nexedi.com> Date: Tue, 24 Jun 2008 10:31:00 +0000 Subject: [PATCH] Factorise code between RAMDict and SQLDict. Factorise code used to generate an unique identifier for messages (used to avoid inserting duplicate messages in the same transaction). git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@21754 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/CMFActivity/Activity/RAMDict.py | 7 +++++-- product/CMFActivity/Activity/SQLDict.py | 14 +++----------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/product/CMFActivity/Activity/RAMDict.py b/product/CMFActivity/Activity/RAMDict.py index 3a1bcce445..be39225bf3 100644 --- a/product/CMFActivity/Activity/RAMDict.py +++ b/product/CMFActivity/Activity/RAMDict.py @@ -65,15 +65,18 @@ class RAMDict(Queue): def registerActivityBuffer(self, activity_buffer): pass + def generateMessageUID(self, m): + return (tuple(m.object_path), m.method_id) + def isMessageRegistered(self, activity_buffer, activity_tool, m): uid_set = activity_buffer.getUidSet(self) - return (tuple(m.object_path), m.method_id) in uid_set + return self.generateMessageId(m) in uid_set def registerMessage(self, activity_buffer, activity_tool, m): message_list = activity_buffer.getMessageList(self) message_list.append(m) uid_set = activity_buffer.getUidSet(self) - uid_set.add((tuple(m.object_path), m.method_id)) + uid_set.add(self.generateMessageId(m)) m.is_registered = 1 def dequeueMessage(self, activity_tool, processing_node): diff --git a/product/CMFActivity/Activity/SQLDict.py b/product/CMFActivity/Activity/SQLDict.py index c6e3b3f8cc..6f2258c155 100644 --- a/product/CMFActivity/Activity/SQLDict.py +++ b/product/CMFActivity/Activity/SQLDict.py @@ -115,22 +115,14 @@ class SQLDict(RAMDict, SQLBase): def registerActivityBuffer(self, activity_buffer): pass - def isMessageRegistered(self, activity_buffer, activity_tool, m): - uid_set = activity_buffer.getUidSet(self) - return (tuple(m.object_path), m.method_id, m.activity_kw.get('tag'), m.activity_kw.get('group_id')) in uid_set - - def registerMessage(self, activity_buffer, activity_tool, m): - m.is_registered = 1 - uid_set = activity_buffer.getUidSet(self) - uid_set.add((tuple(m.object_path), m.method_id, m.activity_kw.get('tag'), m.activity_kw.get('group_id'))) - message_list = activity_buffer.getMessageList(self) - message_list.append(m) + def generateMessageUID(self, m): + return (tuple(m.object_path), m.method_id, m.activity_kw.get('tag'), m.activity_kw.get('group_id')) def unregisterMessage(self, activity_buffer, activity_tool, m): m.is_registered = 0 # This prevents from inserting deleted messages into the queue class_name = self.__class__.__name__ uid_set = activity_buffer.getUidSet(self) - uid_set.discard((tuple(m.object_path), m.method_id, m.activity_kw.get('tag'), m.activity_kw.get('group_id'))) + uid_set.discard(self.generateMessageUID(m)) def getRegisteredMessageList(self, activity_buffer, activity_tool): message_list = activity_buffer.getMessageList(self) -- 2.30.9