[Avida-SVN] r2846 - development/source/script

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Tue Oct 14 05:57:57 PDT 2008


Author: brysonda
Date: 2008-10-14 08:57:57 -0400 (Tue, 14 Oct 2008)
New Revision: 2846

Modified:
   development/source/script/ASAvidaLib.cc
Log:
AS: Simplify native object method registration.

Modified: development/source/script/ASAvidaLib.cc
===================================================================
--- development/source/script/ASAvidaLib.cc	2008-10-14 04:12:29 UTC (rev 2845)
+++ development/source/script/ASAvidaLib.cc	2008-10-14 12:57:57 UTC (rev 2846)
@@ -41,23 +41,29 @@
 AS_DECLARE_NATIVE_OBJECT(cDefaultRunDriver,  Driver);
 AS_DECLARE_NATIVE_OBJECT(cWorld,             World);
 
+#undef AS_DECLARE_NATIVE_OBJECT
 
+
 static void setupNativeObjects()
 {
+#define REGISTER_METHOD(CLASS, NAME, METHOD, SIGNATURE) \
+  tASNativeObject<CLASS>::RegisterMethod(new tASNativeObjectMethod<CLASS, SIGNATURE>(&CLASS::METHOD), NAME);
+
+  
   tASNativeObject<cAvidaConfig>::InitializeMethodRegistrar();
-  tASNativeObject<cAvidaConfig>::
-    RegisterMethod(new tASNativeObjectMethod<cAvidaConfig, cString (const cString&)>(&cAvidaConfig::GetAsString), "Get");
+  REGISTER_METHOD(cAvidaConfig, "Get", GetAsString, cString (const cString&));
   
   
   tASNativeObject<cDefaultRunDriver>::InitializeMethodRegistrar();
-  tASNativeObject<cDefaultRunDriver>::
-    RegisterMethod(new tASNativeObjectMethod<cDefaultRunDriver, void ()>(&cDefaultRunDriver::Run), "Run");
+  REGISTER_METHOD(cDefaultRunDriver, "Run", Run, void ());
 
   
   tASNativeObject<cWorld>::InitializeMethodRegistrar();
+  
+  
+#undef REGISTER_METHOD
 };
 
-#undef AS_DECLARE_NATIVE_OBJECT
 
 template<class FunctionType> class tASNativeObjectInstantiate;
 




More information about the Avida-cvs mailing list