[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue-appserver/src/language ObjectList.py
From: |
Jan Ischebeck |
Subject: |
gnue-appserver/src/language ObjectList.py |
Date: |
Wed, 13 Aug 2003 08:44:41 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue-appserver
Branch:
Changes by: Jan Ischebeck <address@hidden> 03/08/13 08:44:41
Modified files:
src/language : ObjectList.py
Log message:
- Fix interoperability with gnue-common 0.5.1 by not depending on
ResultSet.Count
- don't try to cache the whole resultset, instead load records in steps
of CACHE_STEP (=10)
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-appserver/src/language/ObjectList.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
Patches:
Index: gnue-appserver/src/language/ObjectList.py
diff -c gnue-appserver/src/language/ObjectList.py:1.4
gnue-appserver/src/language/ObjectList.py:1.5
*** gnue-appserver/src/language/ObjectList.py:1.4 Mon Mar 24 11:54:16 2003
--- gnue-appserver/src/language/ObjectList.py Wed Aug 13 08:44:40 2003
***************
*** 19,29 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: ObjectList.py,v 1.4 2003/03/24 16:54:16 siesel Exp $
import types
from Object import newObject
def newList (server, sessionId, classname, cond, sort, properties):
return ObjectList (server, sessionId, classname, cond, sort, properties)
--- 19,30 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: ObjectList.py,v 1.5 2003/08/13 12:44:40 siesel Exp $
import types
from Object import newObject
+ CACHE_STEP = 10
def newList (server, sessionId, classname, cond, sort, properties):
return ObjectList (server, sessionId, classname, cond, sort, properties)
***************
*** 59,68 ****
# Return a slice or a specific element of this sequence
# -------------------------------------------------------------------------
def __getitem__ (self, index):
! if type (index) == types.SliceType:
! return self._cache [index.start:index.stop]
! else:
! return self._cache [index]
# -------------------------------------------------------------------------
# Create a cache for this sequence
--- 60,82 ----
# Return a slice or a specific element of this sequence
# -------------------------------------------------------------------------
def __getitem__ (self, index):
! try:
! if type (index) == types.SliceType:
! return self._cache [index.start:index.stop]
! else:
! return self._cache [index]
! except:
! # try to populate the cache for missing entries
! if self._populateCache():
!
! # if successful try to return entry/entries again
! return self.__getitem__(index)
!
! else:
! raise IndexError
!
!
!
# -------------------------------------------------------------------------
# Create a cache for this sequence
***************
*** 71,80 ****
self.list_id = self._server.request (self._session_id, self.classname,
self.conditions, self.sortOrder,
self.properties)
! self._length = self._server.count (self._session_id, self.list_id)
self._cache = []
! rset = self._server.fetch (self._session_id, self.list_id, 0,
self._length,
0)
for row in rset:
## Convert array into dictonary
--- 85,103 ----
self.list_id = self._server.request (self._session_id, self.classname,
self.conditions, self.sortOrder,
self.properties)
! # fix for gnue-common 0.5.1 release:
! # - don't depend on RecordSet.Count functionality
! # self._length = self._server.count (self._session_id, self.list_id)
self._cache = []
! self._populateCache()
!
!
! # -------------------------------------------------------------------------
! # Populate Cache
! # -------------------------------------------------------------------------
! def _populateCache (self):
! rset = self._server.fetch (self._session_id, self.list_id,
len(self._cache), CACHE_STEP,
0)
for row in rset:
## Convert array into dictonary
***************
*** 86,91 ****
--- 109,121 ----
objData["gnue_id"]=row[0]
obj = newObject (self._server, self._session_id, self.classname,
objData)
self._cache.append (obj)
+
+ # fix for gnue-common 0.5.1 release (will be removed for later releases
of gnue-common)
+ self._length = len(self._cache)
+
+ # return number of updated rows
+ return len(rset)
+
# -------------------------------------------------------------------------
# Extend the cached sequence
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue-appserver/src/language ObjectList.py,
Jan Ischebeck <=