mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-07-16 03:42:09 +00:00
Call entrypoint on scripts so they can perform initialization
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14399 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
60ff1eb5db
commit
e6d513ebd8
@ -43,6 +43,7 @@ using System.Reflection.Emit;
|
|||||||
namespace FreeSWITCH {
|
namespace FreeSWITCH {
|
||||||
|
|
||||||
public enum ScriptContextType {
|
public enum ScriptContextType {
|
||||||
|
None,
|
||||||
App,
|
App,
|
||||||
Api,
|
Api,
|
||||||
ApiBackground,
|
ApiBackground,
|
||||||
@ -151,6 +152,11 @@ namespace FreeSWITCH {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool processAssembly(string fileName, Assembly asm) {
|
bool processAssembly(string fileName, Assembly asm) {
|
||||||
|
// Call the entrypoint once, to initialize apps that need their main called
|
||||||
|
var entryPoint = getEntryDelegate(asm.EntryPoint);
|
||||||
|
try { entryPoint(); } catch { }
|
||||||
|
|
||||||
|
// Check for loading
|
||||||
var allTypes = asm.GetExportedTypes();
|
var allTypes = asm.GetExportedTypes();
|
||||||
if (!RunLoadNotify(allTypes)) return false;
|
if (!RunLoadNotify(allTypes)) return false;
|
||||||
|
|
||||||
@ -159,7 +165,6 @@ namespace FreeSWITCH {
|
|||||||
AddAppPlugins(allTypes);
|
AddAppPlugins(allTypes);
|
||||||
|
|
||||||
// Add the script executors
|
// Add the script executors
|
||||||
var entryPoint = getEntryDelegate(asm.EntryPoint);
|
|
||||||
var name = Path.GetFileName(fileName);
|
var name = Path.GetFileName(fileName);
|
||||||
var aliases = new List<string> { name };
|
var aliases = new List<string> { name };
|
||||||
this.ApiExecutors.Add(new ApiPluginExecutor(name, aliases, () => new ScriptApiWrapper(entryPoint)));
|
this.ApiExecutors.Add(new ApiPluginExecutor(name, aliases, () => new ScriptApiWrapper(entryPoint)));
|
||||||
@ -181,6 +186,7 @@ namespace FreeSWITCH {
|
|||||||
try {
|
try {
|
||||||
entryPoint();
|
entryPoint();
|
||||||
} finally {
|
} finally {
|
||||||
|
Script.contextType = ScriptContextType.None;
|
||||||
Script.context = null;
|
Script.context = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -191,6 +197,7 @@ namespace FreeSWITCH {
|
|||||||
try {
|
try {
|
||||||
entryPoint();
|
entryPoint();
|
||||||
} finally {
|
} finally {
|
||||||
|
Script.contextType = ScriptContextType.None;
|
||||||
Script.context = null;
|
Script.context = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -210,6 +217,7 @@ namespace FreeSWITCH {
|
|||||||
try {
|
try {
|
||||||
entryPoint();
|
entryPoint();
|
||||||
} finally {
|
} finally {
|
||||||
|
Script.contextType = ScriptContextType.None;
|
||||||
Script.context = null;
|
Script.context = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user