Skip to content

Instantly share code, notes, and snippets.

@joaorafaelm
Last active January 25, 2016 17:24
Show Gist options
  • Save joaorafaelm/09aa0bb4fc5eb411bdaa to your computer and use it in GitHub Desktop.
Save joaorafaelm/09aa0bb4fc5eb411bdaa to your computer and use it in GitHub Desktop.
class RingCacher:
"""
Cache de mensagens com valor fixo
"""
def __init__(self, size):
"""
Inicia uma lista de tamanho fixo
@param size: tamanho da lista
@return: void
"""
self.data = []
for i in xrange(size):
self.data.append(0)
def append(self, message_hash):
"""
Remove primeiro elemento da lista e coloca a mensagem no fim da mesma.
@param message_hash: mensagem que vai ser incluida na lista.
@return: void
"""
self.data.pop(0)
self.data.append(message_hash)
def get(self):
"""
Retorna a lista toda.
@return: Array - lista inteira.
"""
return self.data
def is_cached(self, message_hash):
"""
Verifica se mensagem esta contida na lista.
@param message_hash: mensagem a ser procurada na lista.
@return: Boolean
"""
if message_hash in self.data:
return True
return False
def remove(self, message_hash):
"""
Verifica se mensagem esta contida na lista.
@param message_hash: mensagem a ser procurada na lista.
@return: Boolean
"""
self.data.remove(message_hash)
self.data.append(0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment