Package nbxmpp :: Module idlequeue :: Class IdleQueue

[hide private]
[frames] | no frames]

# Class IdleQueue

source code

IdleQueue provide three distinct time based features. Uses select.poll()

> 1. Alarm timeout: Execute a callback after foo seconds
> 2. Timeout event: Call read_timeout() of an plugged object if a timeout has been set, but not removed in time.
> 3. Check file descriptor of plugged objects for read, write and error events

Instance Methods | [hide private]

__init__(self) | source code

_init_idle(self) Hook method for subclassed. Will be called by __init__ | source code

set_alarm(self, alarm_cb, seconds) Set up a new alarm. alarm_cb will be called after specified seconds. | source code

remove_alarm(self, alarm_cb, alarm_time) Remove alarm callback alarm_cb scheduled on alarm_time. Returns True if it was removed sucessfully, otherwise False | source code

remove_timeout(self, fd, timeout=None) Remove the read timeout | source code

set_read_timeout(self, fd, seconds, func=None) Seta a new timeout. If it is not removed after specified seconds, func or obj.read_timeout() will be called | source code

_check_time_events(self) Execute and remove alarm callbacks and execute func() or read_timeout() for plugged objects if specified time has ellapsed | source code

plug_idle(self, obj, writable=True, readable=True) Plug an IdleObject into idlequeue. Filedescriptor fd must be set | source code

_add_idle(self, fd, flags) Hook method for subclasses, called by plug_idle | source code

unplug_idle(self, fd) Remove plugged IdleObject, specified by filedescriptor fd | source code

current_time(self) | source code

_remove_idle(self, fd) Hook method for subclassed, called by unplug_idle | source code

_process_events(self, fd, flags) | source code

process(self) Process idlequeue. Check for any pending timeout or alarm events. Call IdleObjects on possible and requested read, write and error events on their file descriptors | source code

Class Variables | [hide private]

| PROCESS_TIMEOUT = ``(`100`,` False`)``

Method Details | [hide private]

### __init__(self)
(Constructor)

source code

### _init_idle(self)

source code

Hook method for subclassed. Will be called by __init__

### set_alarm(self, alarm_cb, seconds)

source code

Set up a new alarm. alarm_cb will be called after specified seconds.

### remove_alarm(self, alarm_cb, alarm_time)

source code

Remove alarm callback alarm_cb scheduled on alarm_time. Returns True if it was removed sucessfully, otherwise False

### remove_timeout(self, fd, timeout=None)

source code

Remove the read timeout

### set_read_timeout(self, fd, seconds, func=None)

source code

Seta a new timeout. If it is not removed after specified seconds, func or obj.read_timeout() will be called

A filedescriptor fd can have several timeouts.

### _check_time_events(self)

source code

Execute and remove alarm callbacks and execute func() or read_timeout() for plugged objects if specified time has ellapsed

### plug_idle(self, obj, writable=True, readable=True)

source code

Plug an IdleObject into idlequeue. Filedescriptor fd must be set

Parameters:
  - `obj` - the IdleObject
  - `writable` - True if obj has data to sent
  - `readable` - True if obj expects data to be reiceived

### _add_idle(self, fd, flags)

source code

Hook method for subclasses, called by plug_idle

### unplug_idle(self, fd)

source code

Remove plugged IdleObject, specified by filedescriptor fd

### current_time(self)

source code

### _remove_idle(self, fd)

source code

Hook method for subclassed, called by unplug_idle

### _process_events(self, fd, flags)

source code

### process(self)

source code

Process idlequeue. Check for any pending timeout or alarm events. Call IdleObjects on possible and requested read, write and error events on their file descriptors

Call this in regular intervals.

Class Variable Details | [hide private]

### PROCESS_TIMEOUT

Value:

      (100, False)