From ad21e8e4e5ac8f9eb38830f3024e19fd9329e288 Mon Sep 17 00:00:00 2001 From: Leif Johansson Date: Thu, 9 Feb 2012 00:16:16 +0100 Subject: * refactor api * now depends on with statement * object-pool using queues --- src/meetingtools/ac/api.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/meetingtools/ac/api.py') diff --git a/src/meetingtools/ac/api.py b/src/meetingtools/ac/api.py index c17d500..4d5559f 100644 --- a/src/meetingtools/ac/api.py +++ b/src/meetingtools/ac/api.py @@ -10,6 +10,7 @@ import logging from pprint import pformat import os import tempfile +import time from lxml import etree from meetingtools.site_logging import logger import lxml @@ -67,15 +68,29 @@ def _getset(d,key,value=None): class ACPClient(): - def __init__(self,url,username=None,password=None,cache=True): + def __init__(self,url,username=None,password=None,cache=True,cpool=None): + self._cpool = cpool + self.age = 0 + self.createtime = time.time() + self.lastused = self.createtime self.url = url self.session = None if username and password: self.login(username,password) if cache: self._cache = {'login':{},'group':{}} + + def __exit__(self,type,value,traceback): + if self._cpool: + self._cpool._q.put_nowait(self) + + def __enter__(self): + return self + def request(self,method,p={},raise_error=False): + self.age += 1 + self.lastused = time.time() u = [] u.append("action=%s" % method) if self.session: -- cgit v1.1