[Freeswitch-svn] [commit] r9456 - freeswitch/trunk/src/mod/languages/mod_mono_managed

Freeswitch SVN michaelgg at freeswitch.org
Thu Sep 4 19:28:10 EDT 2008


Author: michaelgg
Date: Thu Sep  4 19:28:10 2008
New Revision: 9456

Modified:
   freeswitch/trunk/src/mod/languages/mod_mono_managed/Loader.cs

Log:
Allow class name only function resolution in mod_mono because some people were too lazy to fully qualify

Modified: freeswitch/trunk/src/mod/languages/mod_mono_managed/Loader.cs
==============================================================================
--- freeswitch/trunk/src/mod/languages/mod_mono_managed/Loader.cs	(original)
+++ freeswitch/trunk/src/mod/languages/mod_mono_managed/Loader.cs	Thu Sep  4 19:28:10 2008
@@ -42,6 +42,8 @@
     {
         // Stores a list of the loaded function types so we can instantiate them as needed
         static readonly Dictionary<string, Type> functions = new Dictionary<string, Type>(StringComparer.InvariantCultureIgnoreCase);
+        // Only class name. Last in wins.
+        static readonly Dictionary<string, Type> shortFunctions = new Dictionary<string, Type>(StringComparer.InvariantCultureIgnoreCase);
 
         #region Load/Unload
 
@@ -86,6 +88,7 @@
                     if (shouldLoad) {
                         Log.WriteLine(LogLevel.Notice, "Function {0} loaded.", t.FullName);
                         functions.Add(t.FullName, t);
+                        shortFunctions[t.Name] = t;
                     }
                     else {
                         Log.WriteLine(LogLevel.Notice, "Function {0} requested not to be loaded.", t.FullName);
@@ -137,8 +140,10 @@
         {
             Type t;
             if (!functions.TryGetValue(fullName, out t) || !t.IsSubclassOf(typeof(TFunction))) {
-                Log.WriteLine(LogLevel.Error, "Could not find function {0}.", fullName);
-                return null;
+                if (!shortFunctions.TryGetValue(fullName, out t) || !t.IsSubclassOf(typeof(TFunction))) {
+                    Log.WriteLine(LogLevel.Error, "Could not find function {0}.", fullName);
+                    return null;
+                }
             }
             return t;
         }



More information about the Freeswitch-svn mailing list