[Top][All Lists]
[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 = []
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r6823 - trunk/gnue-appserver/src/language,
johannes <=