@synchronized(lock)<EOL><INDENT>def dequeue(self, destination):<DEDENT>
if not self.has_frames(destination):<EOL><INDENT>return None<EOL><DEDENT>message_id = self.queue_metadata[destination]['<STR_LIT>'].pop()<EOL>self.queue_metadata[destination]['<STR_LIT>'] += <NUM_LIT:1><EOL>frame = self.frame_store[message_id]<EOL>del self.frame_store[message_id]<EOL>self._opcount += <NUM_LIT:1><EOL>self._sync()<EOL>return frame<EOL>
Removes and returns an item from the queue (or C{None} if no items in queue).

@param destination: The queue name (destinationination).
@type destination: C{str}

@return: The first frame in the specified queue, or C{None} if there are none.
@rtype: C{stompclient.frame.Frame}