Making corrections for 2.7 compatibility (which mostly means bypassing the xml parser...
[invirt/packages/python-jsonrpclib.git] / jsonrpclib / history.py
1 class History(object):
2     """
3     This holds all the response and request objects for a
4     session. A server using this should call "clear" after
5     each request cycle in order to keep it from clogging 
6     memory.
7     """
8     requests = []
9     responses = []
10     _instance = None
11     
12     @classmethod
13     def instance(cls):
14         if not cls._instance:
15             cls._instance = cls()
16         return cls._instance
17
18     def add_response(self, response_obj):
19         self.responses.append(response_obj)
20     
21     def add_request(self, request_obj):
22         self.requests.append(request_obj)
23
24     @property
25     def request(self):
26         if len(self.requests) == 0:
27             return None
28         else:
29             return self.requests[-1]
30
31     @property
32     def response(self):
33         if len(self.responses) == 0:
34             return None
35         else:
36             return self.responses[-1]
37
38     def clear(self):
39         del self.requests[:]
40         del self.responses[:]