don't apply all aspects blindly (although there is only one for the moment...)
authorBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Thu, 23 Sep 2010 09:35:05 +0000 (11:35 +0200)
committerBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Thu, 23 Sep 2010 09:35:05 +0000 (11:35 +0200)
PLC/API.py
aspects/__init__.py

index 0d228f7..7af3cec 100644 (file)
@@ -141,11 +141,14 @@ class PLCAPI:
         else:
             raise PLCAPIError, "Unsupported database type " + self.config.PLC_DB_TYPE
 
-        # Aspects modify the API injecting code before/after method
-        # calls. As of now we only have aspects for OMF integration,
-        # that's why we enable aspects only if PLC_OMF is set to true.
+        # Aspects modify the API by injecting code before, after or
+        # around method calls. -- http://github.com/baris/pyaspects/blob/master/README
+        # 
+        # As of now we only have aspects for OMF integration, that's
+        # why we enable aspects only if PLC_OMF is set to true.
         if self.config.PLC_OMF_ENABLED:
-            from aspects import apply_aspects; apply_aspects()
+            from aspects import apply_omf_aspect
+            apply_omf_aspect()
 
 
     def callable(self, method):
index bcce3bc..1df5a9f 100644 (file)
@@ -6,11 +6,15 @@ from PLC.Method import Method
 from aspects.omfaspects import OMFAspect
 
 
-def apply_aspects():
-
-    # TEST
-    #from pyaspects.debuggeraspect import DebuggerAspect
-    #weave_class_method(DebuggerAspect(out=open("/tmp/all_method_calls.log", "a")), Method, "__call__")
 
+def apply_omf_aspect():
     # track all PLC methods to add OMF hooks
     weave_class_method(OMFAspect(), Method, "__call__")
+
+
+def apply_debugger_aspect():
+    # just log all method calls w/ their parameters
+    from pyaspects.debuggeraspect import DebuggerAspect
+    weave_class_method(DebuggerAspect(out=open("/tmp/all_method_calls.log", "a")), Method, "__call__")
+
+