commit-gnue
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]