commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r6823 - trunk/gnue-appserver/src/language


From: johannes
Subject: r6823 - trunk/gnue-appserver/src/language
Date: Sat, 25 Dec 2004 07:57:12 -0600 (CST)

Author: johannes
Date: 2004-12-25 07:57:11 -0600 (Sat, 25 Dec 2004)
New Revision: 6823

Modified:
   trunk/gnue-appserver/src/language/Object.py
   trunk/gnue-appserver/src/language/Session.py
Log:
First optimizations for performance (need more work though)


Modified: trunk/gnue-appserver/src/language/Object.py
===================================================================
--- trunk/gnue-appserver/src/language/Object.py 2004-12-24 14:23:45 UTC (rev 
6822)
+++ trunk/gnue-appserver/src/language/Object.py 2004-12-25 13:57:11 UTC (rev 
6823)
@@ -53,9 +53,10 @@
   # -------------------------------------------------------------------------
   def __init__ (self, session, classname, objectId = None):
     # we won't trigger __setattr__ here ...
-    self.__dict__['objectId']         = objectId
-    self.__dict__['_Object__session'] = session
-    self.__dict__['_Object__class']   = classname
+    self.__dict__['objectId']          = objectId
+    self.__dict__['_Object__session']  = session
+    self.__dict__['_Object__class']    = classname
+    self.__dict__['_Object__classdef'] = None
 
     if self.objectId is None:
       # Create new object
@@ -74,6 +75,9 @@
     if name == "gnue_id":
       return self.objectId
 
+    if self.__classdef is None:
+      self.__classdef = self.__session.getClassDef (self.__class)
+
     if self.__attrIsMethod (name):
       return Procedure (self.__session, self.objectId, self.__class, name)
 
@@ -102,22 +106,26 @@
     if self.__dict__.has_key (attr):
       self.__dict__ [attr] = value
 
-    elif self.__attrIsValid (attr):
-      name = self.__session.qualify (attr)
-      sm   = self.__session.getSessionManager ()
-      sid  = self.__session.getSessionId ()
+    else:
+      if self.__classdef is None:
+        self.__classdef = self.__session.getClassDef (self.__class)
 
-      if isinstance (value, Object):
-        __value = value.objectId
-      else:
-        __value = value
+      if self.__attrIsValid (attr):
+        name = self.__session.qualify (attr)
+        sm   = self.__session.getSessionManager ()
+        sid  = self.__session.getSessionId ()
 
-      sm.store (sid, self.__class, [self.objectId], [name], [[__value]])
+        if isinstance (value, Object):
+          __value = value.objectId
+        else:
+          __value = value
 
-    else:
-      raise AttributeError, attr
+        sm.store (sid, self.__class, [self.objectId], [name], [[__value]])
 
+      else:
+        raise AttributeError, attr
 
+
   # -------------------------------------------------------------------------
   # Return the Object-ID as string representation
   # -------------------------------------------------------------------------
@@ -161,16 +169,14 @@
   # -------------------------------------------------------------------------
   def __attrIsValid (self, attr):
     name = self.__session.qualify (attr)
-    cDef = self.__session.getClassDef (self.__class)
-    return name in cDef ['properties']
+    return name in self.__classdef ['properties']
 
   # -------------------------------------------------------------------------
   # Check if 'attr' is a valid procedure of this class
   # -------------------------------------------------------------------------
   def __attrIsMethod (self, attr):
     name = self.__session.qualify (attr)
-    cDef = self.__session.getClassDef (self.__class)
-    return name in cDef ['procedures']
+    return name in self.__classdef ['procedures']
 
 
   # -------------------------------------------------------------------------

Modified: trunk/gnue-appserver/src/language/Session.py
===================================================================
--- trunk/gnue-appserver/src/language/Session.py        2004-12-24 14:23:45 UTC 
(rev 6822)
+++ trunk/gnue-appserver/src/language/Session.py        2004-12-25 13:57:11 UTC 
(rev 6823)
@@ -29,6 +29,9 @@
 from gnue.common.apps import i18n, errors
 
 
+MODULES = {}
+CLASSES = {}
+
 # ===========================================================================
 # Exceptions
 # ===========================================================================
@@ -57,9 +60,12 @@
     self.__context    = None
     self.parameters   = params
 
-    self.__classdefs  = {}
-    self.__modules    = {}
+    global MODULES
+    global CLASSES
+    self.__classdefs  = CLASSES
+    self.__modules    = MODULES
 
+
   # -------------------------------------------------------------------------
   # Get the session's sessionManager
   # -------------------------------------------------------------------------
@@ -204,6 +210,7 @@
 
     return result
 
+
   def __fetchData (self, tablename, moduleId, classId):
 
     result = []





reply via email to

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