Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
Queue Class Reference

Public Member Functions

def __init__
 
def qsize
 
def empty
 
def full
 
def put
 
def put_nowait
 
def get
 
def get_nowait
 

Data Fields

 mutex
 
 esema
 
 fsema
 
 maxsize
 
 queue
 

Detailed Description

Definition at line 11 of file Queue.py.

Constructor & Destructor Documentation

def __init__ (   self,
  maxsize = 0 
)
Initialize a queue object with a given maximum size.

If maxsize is <= 0, the queue size is infinite.

Definition at line 12 of file Queue.py.

References Queue._init().

12 
13  def __init__(self, maxsize=0):
14  """Initialize a queue object with a given maximum size.
15 
16  If maxsize is <= 0, the queue size is infinite.
17  """
18  import thread
19  self._init(maxsize)
20  self.mutex = thread.allocate_lock()
21  self.esema = thread.allocate_lock()
22  self.esema.acquire()
23  self.fsema = thread.allocate_lock()

Member Function Documentation

def empty (   self)
Return 1 if the queue is empty, 0 otherwise (not reliable!).

Definition at line 31 of file Queue.py.

References Queue._empty().

31 
32  def empty(self):
33  """Return 1 if the queue is empty, 0 otherwise (not reliable!)."""
34  self.mutex.acquire()
35  n = self._empty()
36  self.mutex.release()
37  return n
def full (   self)
Return 1 if the queue is full, 0 otherwise (not reliable!).

Definition at line 38 of file Queue.py.

References Queue._full().

38 
39  def full(self):
40  """Return 1 if the queue is full, 0 otherwise (not reliable!)."""
41  self.mutex.acquire()
42  n = self._full()
43  self.mutex.release()
44  return n
def get (   self,
  block = 1 
)
Remove and return an item from the queue.

If optional arg 'block' is 1 (the default), block if
necessary until an item is available.  Otherwise (block is 0),
return an item if one is immediately available, else raise the
Empty exception.

Definition at line 74 of file Queue.py.

References Queue._empty(), Queue._full(), and Queue._get().

74 
75  def get(self, block=1):
76  """Remove and return an item from the queue.
77 
78  If optional arg 'block' is 1 (the default), block if
79  necessary until an item is available. Otherwise (block is 0),
80  return an item if one is immediately available, else raise the
81  Empty exception.
82  """
83  if block:
84  self.esema.acquire()
85  elif not self.esema.acquire(0):
86  raise Empty
87  self.mutex.acquire()
88  was_full = self._full()
89  item = self._get()
90  if was_full:
91  self.fsema.release()
92  if not self._empty():
93  self.esema.release()
94  self.mutex.release()
95  return item
def get_nowait (   self)
Remove and return an item from the queue without blocking.

Only get an item if one is immediately available.  Otherwise
raise the Empty exception.

Definition at line 96 of file Queue.py.

References Queue.get(), Pickler.get(), ConfigParser.get(), Message.get, _SpoofOut.get(), _Environ.get(), and _TestClass.get().

96 
97  def get_nowait(self):
98  """Remove and return an item from the queue without blocking.
99 
100  Only get an item if one is immediately available. Otherwise
101  raise the Empty exception.
102  """
103  return self.get(0)
def put (   self,
  item,
  block = 1 
)
Put an item into the queue.

If optional arg 'block' is 1 (the default), block if
necessary until a free slot is available.  Otherwise (block
is 0), put an item on the queue if a free slot is immediately
available, else raise the Full exception.

Definition at line 45 of file Queue.py.

References Queue._empty(), Queue._full(), and Queue._put().

45 
46  def put(self, item, block=1):
47  """Put an item into the queue.
48 
49  If optional arg 'block' is 1 (the default), block if
50  necessary until a free slot is available. Otherwise (block
51  is 0), put an item on the queue if a free slot is immediately
52  available, else raise the Full exception.
53  """
54  if block:
55  self.fsema.acquire()
56  elif not self.fsema.acquire(0):
57  raise Full
58  self.mutex.acquire()
59  was_empty = self._empty()
60  self._put(item)
61  if was_empty:
62  self.esema.release()
63  if not self._full():
64  self.fsema.release()
65  self.mutex.release()
def put_nowait (   self,
  item 
)
Put an item into the queue without blocking.

Only enqueue the item if a free slot is immediately available.
Otherwise raise the Full exception.

Definition at line 66 of file Queue.py.

References Queue.put(), and Pickler.put().

66 
67  def put_nowait(self, item):
68  """Put an item into the queue without blocking.
69 
70  Only enqueue the item if a free slot is immediately available.
71  Otherwise raise the Full exception.
72  """
73  return self.put(item, 0)
def qsize (   self)
Return the approximate size of the queue (not reliable!).

Definition at line 24 of file Queue.py.

References Queue._qsize().

24 
25  def qsize(self):
26  """Return the approximate size of the queue (not reliable!)."""
27  self.mutex.acquire()
28  n = self._qsize()
29  self.mutex.release()
30  return n

Field Documentation

esema

Definition at line 20 of file Queue.py.

fsema

Definition at line 22 of file Queue.py.

maxsize

Definition at line 110 of file Queue.py.

mutex

Definition at line 19 of file Queue.py.

queue

Definition at line 111 of file Queue.py.


The documentation for this class was generated from the following file: