Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/xmpp/idlequeue.py')
-rw-r--r--src/common/xmpp/idlequeue.py78
1 files changed, 39 insertions, 39 deletions
diff --git a/src/common/xmpp/idlequeue.py b/src/common/xmpp/idlequeue.py
index 19a64c20e..63cb26bf6 100644
--- a/src/common/xmpp/idlequeue.py
+++ b/src/common/xmpp/idlequeue.py
@@ -12,8 +12,8 @@
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
-'''
-Idlequeues are Gajim's network heartbeat. Transports can be plugged as
+'''
+Idlequeues are Gajim's network heartbeat. Transports can be plugged as
idle objects and be informed about possible IO.
'''
import os
@@ -35,13 +35,13 @@ elif os.name == 'posix':
import fcntl
FLAG_WRITE = 20 # write only
-FLAG_READ = 19 # read only
+FLAG_READ = 19 # read only
FLAG_READ_WRITE = 23 # read and write
FLAG_CLOSE = 16 # wait for close
PENDING_READ = 3 # waiting read event
PENDING_WRITE = 4 # waiting write event
-IS_CLOSED = 16 # channel closed
+IS_CLOSED = 16 # channel closed
def get_idlequeue():
@@ -91,30 +91,30 @@ class IdleCommand(IdleObject):
IdleObject.__init__(self)
# how long (sec.) to wait for result ( 0 - forever )
# it is a class var, instead of a constant and we can override it.
- self.commandtimeout = 0
+ self.commandtimeout = 0
# when we have some kind of result (valid, ot not) we call this handler
self.result_handler = on_result
# if it is True, we can safetely execute the command
self.canexecute = True
self.idlequeue = None
self.result =''
-
+
def set_idlequeue(self, idlequeue):
self.idlequeue = idlequeue
-
+
def _return_result(self):
if self.result_handler:
self.result_handler(self.result)
self.result_handler = None
-
+
def _compose_command_args(self):
return ['echo', 'da']
-
+
def _compose_command_line(self):
''' return one line representation of command and its arguments '''
- return reduce(lambda left, right: left + ' ' + right,
+ return reduce(lambda left, right: left + ' ' + right,
self._compose_command_args())
-
+
def wait_child(self):
if self.pipe.poll() is None:
# result timeout
@@ -141,16 +141,16 @@ class IdleCommand(IdleObject):
self._start_nt()
elif os.name == 'posix':
self._start_posix()
-
+
def _start_nt(self):
- # if gajim is started from noninteraactive shells stdin is closed and
+ # if gajim is started from noninteraactive shells stdin is closed and
# cannot be forwarded, so we have to keep it open
- self.pipe = Popen(self._compose_command_args(), stdout=PIPE,
+ self.pipe = Popen(self._compose_command_args(), stdout=PIPE,
bufsize = 1024, shell = True, stderr = STDOUT, stdin = PIPE)
if self.commandtimeout >= 0:
self.endtime = self.idlequeue.current_time() + self.commandtimeout
self.idlequeue.set_alarm(self.wait_child, 0.1)
-
+
def _start_posix(self):
self.pipe = os.popen(self._compose_command_line())
self.fd = self.pipe.fileno()
@@ -158,19 +158,19 @@ class IdleCommand(IdleObject):
self.idlequeue.plug_idle(self, False, True)
if self.commandtimeout >= 0:
self.idlequeue.set_read_timeout(self.fd, self.commandtimeout)
-
+
def end(self):
self.idlequeue.unplug_idle(self.fd)
try:
self.pipe.close()
except:
pass
-
+
def pollend(self):
self.idlequeue.remove_timeout(self.fd)
self.end()
self._return_result()
-
+
def pollin(self):
try:
res = self.pipe.read()
@@ -180,25 +180,25 @@ class IdleCommand(IdleObject):
return self.pollend()
else:
self.result += res
-
+
def read_timeout(self):
self.end()
self._return_result()
-
+
class IdleQueue:
'''
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
+ 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
+ events
'''
# (timeout, boolean)
# Boolean is True if timeout is specified in seconds, False means miliseconds
- PROCESS_TIMEOUT = (200, False)
+ PROCESS_TIMEOUT = (200, False)
def __init__(self):
self.queue = {}
@@ -219,7 +219,7 @@ class IdleQueue:
self.selector = select.poll()
def set_alarm(self, alarm_cb, seconds):
- '''
+ '''
Sets up a new alarm. alarm_cb will be called after specified seconds.
'''
alarm_time = self.current_time() + seconds
@@ -230,24 +230,24 @@ class IdleQueue:
self.alarms[alarm_time] = [alarm_cb]
return alarm_time
- def remove_alarm(self, alarm_cb, alarm_time):
+ def remove_alarm(self, alarm_cb, alarm_time):
'''
Removes alarm callback alarm_cb scheduled on alarm_time.
Returns True if it was removed sucessfully, otherwise False
- '''
+ '''
if not alarm_time in self.alarms:
- return False
- i = -1
+ return False
+ i = -1
for i in range(len(self.alarms[alarm_time])):
- # let's not modify the list inside the loop
+ # let's not modify the list inside the loop
if self.alarms[alarm_time][i] is alarm_cb:
- break
+ break
if i != -1:
- del self.alarms[alarm_time][i]
+ del self.alarms[alarm_time][i]
if self.alarms[alarm_time] == []:
- del self.alarms[alarm_time]
- return True
- else:
+ del self.alarms[alarm_time]
+ return True
+ else:
return False
def remove_timeout(self, fd, timeout=None):
@@ -298,7 +298,7 @@ class IdleQueue:
log.debug('Calling %s for fd %s' % (func, fd))
func()
else:
- log.debug('Calling read_timeout for fd %s' % fd)
+ log.debug('Calling read_timeout for fd %s' % fd)
self.queue[fd].read_timeout()
self.remove_timeout(fd, timeout)
@@ -314,7 +314,7 @@ class IdleQueue:
def plug_idle(self, obj, writable=True, readable=True):
'''
- Plug an IdleObject into idlequeue. Filedescriptor fd must be set.
+ Plug an IdleObject into idlequeue. Filedescriptor fd must be set.
:param obj: the IdleObject
:param writable: True if obj has data to sent
@@ -371,7 +371,7 @@ class IdleQueue:
obj.pollout()
return True
- elif flags & IS_CLOSED:
+ elif flags & IS_CLOSED:
# io error, don't expect more events
self.remove_timeout(obj.fd)
self.unplug_idle(obj.fd)
@@ -472,7 +472,7 @@ class GlibIdleQueue(IdleQueue):
'''
# (timeout, boolean)
# Boolean is True if timeout is specified in seconds, False means miliseconds
- PROCESS_TIMEOUT = (2, True)
+ PROCESS_TIMEOUT = (2, True)
def _init_idle(self):
'''