import channelWithReceiveTimeout
from MercuryFundamentals import debug
import time

class Empty(Exception):
	def __init__(self):
		Exception.__init__(self) 

class Queue:
	def __init__(self,len=None):
		self.__queue=channelWithReceiveTimeout.TimeLimitedReceiveChannel()
		debug("__init__%s"%self.__queue)
	def put(self,val):
		debug("putting %s in %s"%(val,self.__queue))
		self.__queue.send((time.time(),val))

	def get(self,number=None,timeout=None):
		debug("timeout %s getting from %s"%(timeout,self.__queue))
		(t,val)= self.__queue.receive(timeout)
		debug("received from %s data with %s delay"%(self.__queue,(time.time()-t)))
		print val
		return val
	