Skip to content

Commit

Permalink
Methods for update_message_queue
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsekar committed Nov 14, 2017
1 parent 5dc201f commit 50b54d7
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions wc_rules/sim.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ def __init__(self,*args,**kwargs):
kwargs[kwarg] = None
super().__init__(*args,**kwargs)


class SimulationState(core.Model):
agents = core.OneToManyAttribute(BaseClass,related_name='ss_agent')
nodequeries = core.OneToManyAttribute(NodeQuery,related_name='ss_nq')
Expand All @@ -25,6 +26,28 @@ def __init__(self,**kwargs):
self.nodetypequery= NodeTypeQuery()
self.update_message_queue = deque()

def add_message(self,update_message):
# appends to the right of deque
self.update_message_queue.append(update_message)
return self

def pop_message(self):
# removes from left of deque
msg = self.update_message_queue.popleft(update_message)
return msg

def process_message(self,update_message):
# processes and returns a list of messages or None
return []

def process_message_queue(self):
while len(self.update_message_queue)>0:
current_message = self.pop_message()
messages = self.process_message(current_message)
for msg in messages:
self.add_message(msg)
return self

def add_nodequery(self,nq):
self.nodequeries.append(nq)
self.nodetypequery.register_new_nq(nq)
Expand Down

0 comments on commit 50b54d7

Please sign in to comment.