From e7dbaad04f1599965cf8ad709828a17fbd6f8a3a Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sat, 12 Jan 2008 01:14:31 +0000 Subject: New ScriptServer protocol successfully implemented. Still needs hooking up for all commands in both ends, separation of local and remote LSL-commands, etc. --- .../ScriptEngine/RemoteServer/EventManager.cs | 36 +++++++++++++++++++--- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs') diff --git a/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs b/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs index 1b37378..39f2695 100644 --- a/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs @@ -30,6 +30,7 @@ using System; using libsecondlife; using OpenSim.Framework; using OpenSim.Region.ScriptEngine.Common; +using OpenSim.Region.ScriptEngine.Common.TRPC; namespace OpenSim.Region.ScriptEngine.RemoteServer { @@ -41,14 +42,23 @@ namespace OpenSim.Region.ScriptEngine.RemoteServer { System.Collections.Generic.Dictionary remoteScript = new System.Collections.Generic.Dictionary(); + TCPClient m_TCPClient; + TRPC_Remote RPC; + int myScriptServerID; + string remoteHost = "127.0.0.1"; + int remotePort = 8010; private ScriptEngine myScriptEngine; public EventManager(ScriptEngine _ScriptEngine) { myScriptEngine = _ScriptEngine; - - + + m_TCPClient = new TCPClient(); + RPC = new TRPC_Remote(m_TCPClient); + RPC.ReceiveCommand += new TRPC_Remote.ReceiveCommandDelegate(RPC_ReceiveCommand); + myScriptServerID = m_TCPClient.ConnectAndReturnID(remoteHost, remotePort); + myScriptEngine.Log.Verbose("RemoteEngine", "Hooking up to server events"); //myScriptEngine.World.EventManager.OnObjectGrab += touch_start; myScriptEngine.World.EventManager.OnRezScript += OnRezScript; @@ -57,16 +67,32 @@ namespace OpenSim.Region.ScriptEngine.RemoteServer } + void RPC_ReceiveCommand(int ID, string Command, params object[] p) + { + myScriptEngine.Log.Notice("REMOTESERVER", "Received command: '" + Command + "'"); + if (p != null) + { + for (int i = 0; i < p.Length; i++) + { + myScriptEngine.Log.Notice("REMOTESERVER", "Param " + i + ": " + p[i].ToString()); + } + } + + } + public void OnRezScript(uint localID, LLUUID itemID, string script) { // WE ARE CREATING A NEW SCRIPT ... CREATE SCRIPT, GET A REMOTEID THAT WE MAP FROM LOCALID myScriptEngine.Log.Verbose("RemoteEngine", "Creating new script (with connection)"); + // Temp for now: We have one connection only - this is hardcoded in myScriptServerID + RPC.SendCommand(myScriptServerID, "OnRezScript", script); - ScriptServerInterfaces.ServerRemotingObject obj = myScriptEngine.m_RemoteServer.Connect("localhost", 1234); - remoteScript.Add(localID, obj); - remoteScript[localID].Events().OnRezScript(localID, itemID, script); + //ScriptServerInterfaces.ServerRemotingObject obj = myScriptEngine.m_RemoteServer.Connect("localhost", 1234); + //remoteScript.Add(localID, obj); + //remoteScript[localID].Events().OnRezScript(localID, itemID, script); + } -- cgit v1.1