[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