Note to self: VisualSVN not fully compatible with OpenSim prebuild :)
parent
d312f10420
commit
85a0e03984
|
@ -1,58 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using log4net.Config;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer
|
|
||||||
{
|
|
||||||
internal class OpenScript_Main
|
|
||||||
{
|
|
||||||
public static ScriptServerMain SE;
|
|
||||||
|
|
||||||
private static void Main(string[] args)
|
|
||||||
{
|
|
||||||
XmlConfigurator.Configure();
|
|
||||||
|
|
||||||
AppDomain.CurrentDomain.UnhandledException +=
|
|
||||||
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
|
|
||||||
|
|
||||||
// Application is starting
|
|
||||||
SE = new ScriptServerMain();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
|
||||||
{
|
|
||||||
Console.WriteLine(String.Empty);
|
|
||||||
Console.WriteLine("APPLICATION EXCEPTION DETECTED");
|
|
||||||
Console.WriteLine(String.Empty);
|
|
||||||
Console.WriteLine("Application is terminating: " + e.IsTerminating.ToString());
|
|
||||||
//Console.WriteLine("Exception:");
|
|
||||||
//Console.WriteLine(e.ExceptionObject.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using OpenSim.Framework;
|
|
||||||
using OpenSim.Framework.Communications;
|
|
||||||
using OpenSim.Framework.Communications.Cache;
|
|
||||||
using OpenSim.Framework.Servers;
|
|
||||||
using OpenSim.Region.Environment;
|
|
||||||
using OpenSim.Region.Environment.Scenes;
|
|
||||||
using Nini.Config;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer
|
|
||||||
{
|
|
||||||
public class FakeScene: Scene
|
|
||||||
{
|
|
||||||
public FakeScene(RegionInfo regInfo, AgentCircuitManager authen,
|
|
||||||
CommunicationsManager commsMan, SceneCommunicationService sceneGridService,
|
|
||||||
AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer,
|
|
||||||
ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, bool sendTasksToChild, IConfigSource config)
|
|
||||||
: base(
|
|
||||||
regInfo, authen, commsMan, sceneGridService, assetCach, storeManager, httpServer,
|
|
||||||
moduleLoader, dumpAssetsToFile, physicalPrim, sendTasksToChild, config, "")
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// What does a scene have to do? :P
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
// General information about an assembly is controlled through the following
|
|
||||||
// set of attributes. Change these attribute values to modify the information
|
|
||||||
// associated with an assembly.
|
|
||||||
|
|
||||||
[assembly : AssemblyTitle("OpenSim.Grid.ScriptServer")]
|
|
||||||
[assembly : AssemblyDescription("")]
|
|
||||||
[assembly : AssemblyConfiguration("")]
|
|
||||||
[assembly : AssemblyCompany("")]
|
|
||||||
[assembly : AssemblyProduct("OpenSim.Grid.ScriptServer")]
|
|
||||||
[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2008")]
|
|
||||||
[assembly : AssemblyTrademark("")]
|
|
||||||
[assembly : AssemblyCulture("")]
|
|
||||||
|
|
||||||
// Setting ComVisible to false makes the types in this assembly not visible
|
|
||||||
// to COM components. If you need to access a type in this assembly from
|
|
||||||
// COM, set the ComVisible attribute to true on that type.
|
|
||||||
|
|
||||||
[assembly : ComVisible(false)]
|
|
||||||
|
|
||||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
|
||||||
|
|
||||||
[assembly : Guid("b6861b87-5203-4040-b756-fd4774932f82")]
|
|
||||||
|
|
||||||
// Version information for an assembly consists of the following four values:
|
|
||||||
//
|
|
||||||
// Major Version
|
|
||||||
// Minor Version
|
|
||||||
// Build Number
|
|
||||||
// Revision
|
|
||||||
//
|
|
||||||
|
|
||||||
[assembly : AssemblyVersion("1.0.0.0")]
|
|
||||||
[assembly : AssemblyFileVersion("1.0.0.0")]
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using OpenSim.Region.ScriptEngine.Common;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer
|
|
||||||
{
|
|
||||||
public class RemotingObject : MarshalByRefObject, ScriptServerInterfaces.ServerRemotingObject
|
|
||||||
{
|
|
||||||
// This object will be exposed over remoting. It is a singleton, so it exists only in as one instance.
|
|
||||||
|
|
||||||
ScriptServerInterfaces.RemoteEvents ScriptServerInterfaces.ServerRemotingObject.Events()
|
|
||||||
{
|
|
||||||
return ScriptServerMain.Engine.EventManager();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System.Runtime.Remoting;
|
|
||||||
using System.Runtime.Remoting.Channels;
|
|
||||||
using System.Runtime.Remoting.Channels.Tcp;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer
|
|
||||||
{
|
|
||||||
class RemotingServer
|
|
||||||
{
|
|
||||||
TcpChannel channel;
|
|
||||||
public RemotingServer(int port, string instanceName)
|
|
||||||
{
|
|
||||||
// Create an instance of a channel
|
|
||||||
channel = new TcpChannel(port);
|
|
||||||
ChannelServices.RegisterChannel(channel, true);
|
|
||||||
|
|
||||||
// Register as an available service with the name HelloWorld
|
|
||||||
RemotingConfiguration.RegisterWellKnownServiceType(
|
|
||||||
typeof(RemotingObject),
|
|
||||||
instanceName,
|
|
||||||
WellKnownObjectMode.Singleton);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,243 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer.ScriptServer.Region
|
|
||||||
{
|
|
||||||
public abstract class RegionBase
|
|
||||||
{
|
|
||||||
// These are events that the region needs to have
|
|
||||||
|
|
||||||
// TEMP: Using System.Delegate -- needs replacing with a real delegate
|
|
||||||
public delegate void DefaultDelegate();
|
|
||||||
|
|
||||||
public event DefaultDelegate onScriptRez;
|
|
||||||
public event DefaultDelegate onstate_entry;
|
|
||||||
public event DefaultDelegate onstate_exit;
|
|
||||||
public event DefaultDelegate ontouch_start;
|
|
||||||
public event DefaultDelegate ontouch;
|
|
||||||
public event DefaultDelegate ontouch_end;
|
|
||||||
public event DefaultDelegate oncollision_start;
|
|
||||||
public event DefaultDelegate oncollision;
|
|
||||||
public event DefaultDelegate oncollision_end;
|
|
||||||
public event DefaultDelegate onland_collision_start;
|
|
||||||
public event DefaultDelegate onland_collision;
|
|
||||||
public event DefaultDelegate onland_collision_end;
|
|
||||||
public event DefaultDelegate ontimer;
|
|
||||||
public event DefaultDelegate onlisten;
|
|
||||||
public event DefaultDelegate onon_rez;
|
|
||||||
public event DefaultDelegate onsensor;
|
|
||||||
public event DefaultDelegate onno_sensor;
|
|
||||||
public event DefaultDelegate oncontrol;
|
|
||||||
public event DefaultDelegate onmoney;
|
|
||||||
public event DefaultDelegate onemail;
|
|
||||||
public event DefaultDelegate onat_target;
|
|
||||||
public event DefaultDelegate onnot_at_target;
|
|
||||||
public event DefaultDelegate onat_rot_target;
|
|
||||||
public event DefaultDelegate onnot_at_rot_target;
|
|
||||||
public event DefaultDelegate onrun_time_permissions;
|
|
||||||
public event DefaultDelegate onchanged;
|
|
||||||
public event DefaultDelegate onattach;
|
|
||||||
public event DefaultDelegate ondataserver;
|
|
||||||
public event DefaultDelegate onlink_message;
|
|
||||||
public event DefaultDelegate onmoving_start;
|
|
||||||
public event DefaultDelegate onmoving_end;
|
|
||||||
public event DefaultDelegate onobject_rez;
|
|
||||||
public event DefaultDelegate onremote_data;
|
|
||||||
public event DefaultDelegate onhttp_response;
|
|
||||||
|
|
||||||
|
|
||||||
public void ScriptRez()
|
|
||||||
{
|
|
||||||
onScriptRez();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void state_entry()
|
|
||||||
{
|
|
||||||
onstate_entry();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void state_exit()
|
|
||||||
{
|
|
||||||
onstate_exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void touch_start()
|
|
||||||
{
|
|
||||||
ontouch_start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void touch()
|
|
||||||
{
|
|
||||||
ontouch();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void touch_end()
|
|
||||||
{
|
|
||||||
ontouch_end();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collision_start()
|
|
||||||
{
|
|
||||||
oncollision_start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collision()
|
|
||||||
{
|
|
||||||
oncollision();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collision_end()
|
|
||||||
{
|
|
||||||
oncollision_end();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void land_collision_start()
|
|
||||||
{
|
|
||||||
onland_collision_start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void land_collision()
|
|
||||||
{
|
|
||||||
onland_collision();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void land_collision_end()
|
|
||||||
{
|
|
||||||
onland_collision_end();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void timer()
|
|
||||||
{
|
|
||||||
ontimer();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void listen()
|
|
||||||
{
|
|
||||||
onlisten();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void on_rez()
|
|
||||||
{
|
|
||||||
onon_rez();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sensor()
|
|
||||||
{
|
|
||||||
onsensor();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void no_sensor()
|
|
||||||
{
|
|
||||||
onno_sensor();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void control()
|
|
||||||
{
|
|
||||||
oncontrol();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void money()
|
|
||||||
{
|
|
||||||
onmoney();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void email()
|
|
||||||
{
|
|
||||||
onemail();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void at_target()
|
|
||||||
{
|
|
||||||
onat_target();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void not_at_target()
|
|
||||||
{
|
|
||||||
onnot_at_target();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void at_rot_target()
|
|
||||||
{
|
|
||||||
onat_rot_target();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void not_at_rot_target()
|
|
||||||
{
|
|
||||||
onnot_at_rot_target();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void run_time_permissions()
|
|
||||||
{
|
|
||||||
onrun_time_permissions();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void changed()
|
|
||||||
{
|
|
||||||
onchanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void attach()
|
|
||||||
{
|
|
||||||
onattach();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void dataserver()
|
|
||||||
{
|
|
||||||
ondataserver();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void link_message()
|
|
||||||
{
|
|
||||||
onlink_message();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void moving_start()
|
|
||||||
{
|
|
||||||
onmoving_start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void moving_end()
|
|
||||||
{
|
|
||||||
onmoving_end();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void object_rez()
|
|
||||||
{
|
|
||||||
onobject_rez();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void remote_data()
|
|
||||||
{
|
|
||||||
onremote_data();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void http_response()
|
|
||||||
{
|
|
||||||
onhttp_response();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer.ScriptServer.Region
|
|
||||||
{
|
|
||||||
public class RegionConnectionManager : RegionBase
|
|
||||||
{
|
|
||||||
// private ScriptServerMain m_ScriptServerMain;
|
|
||||||
// private object m_Connection;
|
|
||||||
|
|
||||||
public RegionConnectionManager(ScriptServerMain scm, object Connection)
|
|
||||||
{
|
|
||||||
// m_ScriptServerMain = scm;
|
|
||||||
// m_Connection = Connection;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,102 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Threading;
|
|
||||||
using OpenSim.Framework;
|
|
||||||
using OpenSim.Grid.ScriptServer.ScriptServer.Region;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer.ScriptServer
|
|
||||||
{
|
|
||||||
internal class RegionCommManager
|
|
||||||
{
|
|
||||||
private Thread listenThread;
|
|
||||||
|
|
||||||
private List<RegionConnectionManager> Regions = new List<RegionConnectionManager>();
|
|
||||||
|
|
||||||
private ScriptServerMain m_ScriptServerMain;
|
|
||||||
|
|
||||||
public RegionCommManager(ScriptServerMain scm)
|
|
||||||
{
|
|
||||||
m_ScriptServerMain = scm;
|
|
||||||
}
|
|
||||||
|
|
||||||
~RegionCommManager()
|
|
||||||
{
|
|
||||||
Stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Starts listening for region requests
|
|
||||||
/// </summary>
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
// Start listener
|
|
||||||
Stop();
|
|
||||||
listenThread = new Thread(ListenThreadLoop);
|
|
||||||
listenThread.Name = "ListenThread";
|
|
||||||
listenThread.IsBackground = true;
|
|
||||||
listenThread.Start();
|
|
||||||
ThreadTracker.Add(listenThread);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Stops listening for region requests
|
|
||||||
/// </summary>
|
|
||||||
public void Stop()
|
|
||||||
{
|
|
||||||
// Stop listener, clean up
|
|
||||||
if (listenThread != null)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (listenThread.IsAlive)
|
|
||||||
listenThread.Abort();
|
|
||||||
listenThread.Join(1000); // Wait 1 second for thread to shut down
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
listenThread = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ListenThreadLoop()
|
|
||||||
{
|
|
||||||
// * Listen for requests from regions
|
|
||||||
// * When a request is received:
|
|
||||||
// - Authenticate region
|
|
||||||
// - Authenticate user
|
|
||||||
// - Have correct scriptengine load script
|
|
||||||
// ~ ask scriptengines if they will accept script?
|
|
||||||
// - Add script to shared communication channel towards that region
|
|
||||||
|
|
||||||
// TODO: FAKING A CONNECTION
|
|
||||||
Regions.Add(new RegionConnectionManager(m_ScriptServerMain, null));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,117 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using System.Reflection;
|
|
||||||
using log4net;
|
|
||||||
using OpenSim.Region.ScriptEngine.Common;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer.ScriptServer
|
|
||||||
{
|
|
||||||
internal class ScriptEngineLoader
|
|
||||||
{
|
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
|
||||||
|
|
||||||
public ScriptServerInterfaces.ScriptEngine LoadScriptEngine(string EngineName)
|
|
||||||
{
|
|
||||||
ScriptServerInterfaces.ScriptEngine ret = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ret =
|
|
||||||
LoadAndInitAssembly(
|
|
||||||
Path.Combine("ScriptEngines", "OpenSim.Region.ScriptEngine." + EngineName + ".dll"),
|
|
||||||
"OpenSim.Region.ScriptEngine." + EngineName + ".ScriptEngine");
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
m_log.Error("[ScriptEngine]: " +
|
|
||||||
"Error loading assembly \"" + EngineName + "\": " + e.Message + ", " +
|
|
||||||
e.StackTrace.ToString());
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Does actual loading and initialization of script Assembly
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
private ScriptServerInterfaces.ScriptEngine LoadAndInitAssembly(string FileName, string NameSpace)
|
|
||||||
{
|
|
||||||
//Common.SendToDebug("Loading ScriptEngine Assembly " + FileName);
|
|
||||||
// Load .Net Assembly (.dll)
|
|
||||||
// Initialize and return it
|
|
||||||
|
|
||||||
// TODO: Add error handling
|
|
||||||
|
|
||||||
Assembly a;
|
|
||||||
//try
|
|
||||||
//{
|
|
||||||
|
|
||||||
|
|
||||||
// Load to default appdomain (temporary)
|
|
||||||
a = Assembly.LoadFrom(FileName);
|
|
||||||
// Load to specified appdomain
|
|
||||||
// TODO: Insert security
|
|
||||||
//a = FreeAppDomain.Load(FileName);
|
|
||||||
//}
|
|
||||||
//catch (Exception e)
|
|
||||||
//{
|
|
||||||
// m_log.Error("[ScriptEngine]: Error loading assembly \String.Empty + FileName + "\": " + e.ToString());
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
//Console.WriteLine("Loading: " + FileName);
|
|
||||||
//foreach (Type _t in a.GetTypes())
|
|
||||||
//{
|
|
||||||
// Console.WriteLine("Type: " + _t.ToString());
|
|
||||||
//}
|
|
||||||
|
|
||||||
Type t;
|
|
||||||
//try
|
|
||||||
//{
|
|
||||||
t = a.GetType(NameSpace, true);
|
|
||||||
//}
|
|
||||||
//catch (Exception e)
|
|
||||||
//{
|
|
||||||
// m_log.Error("[ScriptEngine]: Error initializing type \String.Empty + NameSpace + "\" from \String.Empty + FileName + "\": " + e.ToString());
|
|
||||||
//}
|
|
||||||
|
|
||||||
ScriptServerInterfaces.ScriptEngine ret;
|
|
||||||
//try
|
|
||||||
//{
|
|
||||||
ret = (ScriptServerInterfaces.ScriptEngine)Activator.CreateInstance(t);
|
|
||||||
//}
|
|
||||||
//catch (Exception e)
|
|
||||||
//{
|
|
||||||
// m_log.Error("[ScriptEngine]: Error initializing type \String.Empty + NameSpace + "\" from \String.Empty + FileName + "\": " + e.ToString());
|
|
||||||
//}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,61 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using OpenSim.Region.ScriptEngine.Common;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer.ScriptServer
|
|
||||||
{
|
|
||||||
internal class ScriptEngineManager
|
|
||||||
{
|
|
||||||
private ScriptEngineLoader ScriptEngineLoader;
|
|
||||||
private List<ScriptServerInterfaces.ScriptEngine> scriptEngines = new List<ScriptServerInterfaces.ScriptEngine>();
|
|
||||||
// private ScriptServerMain m_ScriptServerMain;
|
|
||||||
|
|
||||||
// Initialize
|
|
||||||
public ScriptEngineManager(ScriptServerMain scm)
|
|
||||||
{
|
|
||||||
// m_ScriptServerMain = scm;
|
|
||||||
ScriptEngineLoader = new ScriptEngineLoader();
|
|
||||||
}
|
|
||||||
|
|
||||||
~ScriptEngineManager()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public ScriptServerInterfaces.ScriptEngine LoadEngine(string engineName)
|
|
||||||
{
|
|
||||||
// Load and add to list of ScriptEngines
|
|
||||||
ScriptServerInterfaces.ScriptEngine sei = ScriptEngineLoader.LoadScriptEngine(engineName);
|
|
||||||
if (sei != null)
|
|
||||||
{
|
|
||||||
scriptEngines.Add(sei);
|
|
||||||
}
|
|
||||||
return sei;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,103 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
using OpenMetaverse;
|
|
||||||
using log4net;
|
|
||||||
using OpenSim.Framework.Console;
|
|
||||||
using OpenSim.Framework.Servers;
|
|
||||||
using OpenSim.Grid.ScriptServer.ScriptServer;
|
|
||||||
using OpenSim.Region.ScriptEngine.Common;
|
|
||||||
|
|
||||||
namespace OpenSim.Grid.ScriptServer
|
|
||||||
{
|
|
||||||
public class ScriptServerMain : BaseOpenSimServer, conscmd_callback
|
|
||||||
{
|
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Root object. Creates objects used.
|
|
||||||
//
|
|
||||||
private int listenPort = 8010;
|
|
||||||
|
|
||||||
// TEMP
|
|
||||||
public static ScriptServerInterfaces.ScriptEngine Engine;
|
|
||||||
//public static FakeScene m_Scene = new FakeScene(null,null,null,null,null,null,null,null,null,false, false, false);
|
|
||||||
|
|
||||||
// Objects we use
|
|
||||||
internal RegionCommManager RegionScriptDaemon; // Listen for incoming from region
|
|
||||||
internal ScriptEngineManager ScriptEngines; // Loads scriptengines
|
|
||||||
//internal RemotingServer m_RemotingServer;
|
|
||||||
internal TCPServer m_TCPServer;
|
|
||||||
internal TRPC_Remote RPC;
|
|
||||||
|
|
||||||
public ScriptServerMain()
|
|
||||||
{
|
|
||||||
m_console = CreateConsole();
|
|
||||||
|
|
||||||
// Set up script engine mananger
|
|
||||||
ScriptEngines = new ScriptEngineManager(this);
|
|
||||||
|
|
||||||
// Load DotNetEngine
|
|
||||||
Engine = ScriptEngines.LoadEngine("DotNetEngine");
|
|
||||||
|
|
||||||
Engine.InitializeEngine(null, null, false, Engine.GetScriptManager());
|
|
||||||
|
|
||||||
// Set up server
|
|
||||||
//m_RemotingServer = new RemotingServer(listenPort, "DotNetEngine");
|
|
||||||
m_TCPServer = new TCPServer(listenPort);
|
|
||||||
RPC = new TRPC_Remote(m_TCPServer);
|
|
||||||
RPC.ReceiveCommand += new TRPC_Remote.ReceiveCommandDelegate(RPC_ReceiveCommand);
|
|
||||||
m_TCPServer.StartListen();
|
|
||||||
|
|
||||||
Console.ReadLine();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void RPC_ReceiveCommand(int ID, string Command, object[] p)
|
|
||||||
{
|
|
||||||
m_log.Info("[SERVER]: Received command: '" + Command + "'");
|
|
||||||
if (p != null)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < p.Length; i++)
|
|
||||||
{
|
|
||||||
m_log.Info("[SERVER]: Param " + i + ": " + p[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Command == "OnRezScript")
|
|
||||||
{
|
|
||||||
Engine.EventManager().OnRezScript((uint)p[0], new UUID((string)p[1]), (string)p[2], 0, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ConsoleBase CreateConsole()
|
|
||||||
{
|
|
||||||
return new ConsoleBase("Script", this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Original code: Tedd Hansen */
|
|
||||||
|
|
||||||
namespace OpenSim.Region.ScriptEngine.RemoteServer
|
|
||||||
{
|
|
||||||
public static class Common
|
|
||||||
{
|
|
||||||
public static bool debug = true;
|
|
||||||
public static ScriptEngine mySE;
|
|
||||||
|
|
||||||
// This class just contains some static log stuff used for debugging.
|
|
||||||
|
|
||||||
//public delegate void SendToDebugEventDelegate(string Message);
|
|
||||||
//public delegate void SendToLogEventDelegate(string Message);
|
|
||||||
//static public event SendToDebugEventDelegate SendToDebugEvent;
|
|
||||||
//static public event SendToLogEventDelegate SendToLogEvent;
|
|
||||||
|
|
||||||
public static void SendToDebug(string Message)
|
|
||||||
{
|
|
||||||
//if (Debug == true)
|
|
||||||
mySE.Log.Info("[ScriptEngine]: Debug: " + Message);
|
|
||||||
//SendToDebugEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SendToLog(string Message)
|
|
||||||
{
|
|
||||||
//if (Debug == true)
|
|
||||||
mySE.Log.Info("[ScriptEngine]: LOG: " + Message);
|
|
||||||
//SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,263 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Original code: Tedd Hansen */
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using OpenMetaverse;
|
|
||||||
using OpenSim.Framework;
|
|
||||||
using OpenSim.Region.ScriptEngine.Common;
|
|
||||||
using OpenSim.Region.ScriptEngine.Common.TRPC;
|
|
||||||
|
|
||||||
namespace OpenSim.Region.ScriptEngine.RemoteServer
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Handles events from OpenSim. Uses RemoteServer to send commands.
|
|
||||||
/// </summary>
|
|
||||||
[Serializable]
|
|
||||||
internal class EventManager
|
|
||||||
{
|
|
||||||
// TODO: unused: System.Collections.Generic.Dictionary<uint, ScriptServerInterfaces.ServerRemotingObject> remoteScript = new System.Collections.Generic.Dictionary<uint, ScriptServerInterfaces.ServerRemotingObject>();
|
|
||||||
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.Info("[RemoteEngine]: Hooking up to server events");
|
|
||||||
//myScriptEngine.World.EventManager.OnObjectGrab += touch_start;
|
|
||||||
myScriptEngine.World.EventManager.OnRezScript += OnRezScript;
|
|
||||||
//myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript;
|
|
||||||
}
|
|
||||||
|
|
||||||
void RPC_ReceiveCommand(int ID, string Command, params object[] p)
|
|
||||||
{
|
|
||||||
myScriptEngine.Log.Info("[REMOTESERVER]: Received command: '" + Command + "'");
|
|
||||||
if (p != null)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < p.Length; i++)
|
|
||||||
{
|
|
||||||
myScriptEngine.Log.Info("[REMOTESERVER]: Param " + i + ": " + p[i].ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez)
|
|
||||||
{
|
|
||||||
// WE ARE CREATING A NEW SCRIPT ... CREATE SCRIPT, GET A REMOTEID THAT WE MAP FROM LOCALID
|
|
||||||
myScriptEngine.Log.Info("[RemoteEngine]: Creating new script (with connection)");
|
|
||||||
|
|
||||||
// Temp for now: We have one connection only - this is hardcoded in myScriptServerID
|
|
||||||
RPC.SendCommand(myScriptServerID, "OnRezScript", localID, itemID.ToString(), script);
|
|
||||||
|
|
||||||
//ScriptServerInterfaces.ServerRemotingObject obj = myScriptEngine.m_RemoteServer.Connect("localhost", 1234);
|
|
||||||
//remoteScript.Add(localID, obj);
|
|
||||||
//remoteScript[localID].Events().OnRezScript(localID, itemID, script);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void touch_start(uint localID, Vector3 offsetPos, IClientAPI remoteClient)
|
|
||||||
{
|
|
||||||
//remoteScript[localID].Events.touch_start(localID, offsetPos, remoteClient);
|
|
||||||
RPC.SendCommand(myScriptServerID, "touch_start", offsetPos, "How to transfer IClientAPI?");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// PLACEHOLDERS -- CODE WILL CHANGE!
|
|
||||||
|
|
||||||
|
|
||||||
//public void OnRemoveScript(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.OnRemoveScript(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void state_exit(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.state_exit(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void touch(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.touch(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void touch_end(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.touch_end(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void collision_start(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.collision_start(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void collision(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.collision(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void collision_end(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.collision_end(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void land_collision_start(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.land_collision_start(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void land_collision(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.land_collision(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void land_collision_end(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.land_collision_end(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void timer(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.timer(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void listen(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.listen(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void on_rez(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.on_rez(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void sensor(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.sensor(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void no_sensor(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.no_sensor(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void control(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.control(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void money(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.money(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void email(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.email(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void at_target(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.at_target(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void not_at_target(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.not_at_target(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void at_rot_target(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.at_rot_target(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void not_at_rot_target(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.not_at_rot_target(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void run_time_permissions(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.run_time_permissions(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void changed(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.changed(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void attach(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.attach(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void dataserver(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.dataserver(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void link_message(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.link_message(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void moving_start(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.moving_start(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void moving_end(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.moving_end(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void object_rez(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.object_rez(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void remote_data(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.remote_data(localID, itemID);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public void http_response(uint localID, UUID itemID)
|
|
||||||
//{
|
|
||||||
// remoteScript[localID].Events.http_response(localID, itemID);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
// General information about an assembly is controlled through the following
|
|
||||||
// set of attributes. Change these attribute values to modify the information
|
|
||||||
// associated with an assembly.
|
|
||||||
|
|
||||||
[assembly : AssemblyTitle("OpenSim.Region.ScriptEngine.RemoteServer")]
|
|
||||||
[assembly : AssemblyDescription("")]
|
|
||||||
[assembly : AssemblyConfiguration("")]
|
|
||||||
[assembly : AssemblyCompany("")]
|
|
||||||
[assembly : AssemblyProduct("OpenSim.Region.ScriptEngine.RemoteServer")]
|
|
||||||
[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2008")]
|
|
||||||
[assembly : AssemblyTrademark("")]
|
|
||||||
[assembly : AssemblyCulture("")]
|
|
||||||
|
|
||||||
// Setting ComVisible to false makes the types in this assembly not visible
|
|
||||||
// to COM components. If you need to access a type in this assembly from
|
|
||||||
// COM, set the ComVisible attribute to true on that type.
|
|
||||||
|
|
||||||
[assembly : ComVisible(false)]
|
|
||||||
|
|
||||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
|
||||||
|
|
||||||
[assembly : Guid("2842257e-6fde-4460-9368-4cde57fa9cc4")]
|
|
||||||
|
|
||||||
// Version information for an assembly consists of the following four values:
|
|
||||||
//
|
|
||||||
// Major Version
|
|
||||||
// Minor Version
|
|
||||||
// Build Number
|
|
||||||
// Revision
|
|
||||||
//
|
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
|
||||||
// by using the '*' as shown below:
|
|
||||||
|
|
||||||
[assembly : AssemblyVersion("1.0.0.0")]
|
|
||||||
[assembly : AssemblyFileVersion("1.0.0.0")]
|
|
|
@ -1,80 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Net.Sockets;
|
|
||||||
using System.Runtime.Remoting;
|
|
||||||
using System.Runtime.Remoting.Channels;
|
|
||||||
using System.Runtime.Remoting.Channels.Tcp;
|
|
||||||
using OpenSim.Region.ScriptEngine.Common;
|
|
||||||
|
|
||||||
namespace OpenSim.Region.ScriptEngine.RemoteServer
|
|
||||||
{
|
|
||||||
class RemoteServer
|
|
||||||
{
|
|
||||||
// Handles connections to servers
|
|
||||||
// Create and returns server object
|
|
||||||
|
|
||||||
public RemoteServer()
|
|
||||||
{
|
|
||||||
TcpChannel chan = new TcpChannel();
|
|
||||||
ChannelServices.RegisterChannel(chan, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Create a channel for communicating w/ the remote object
|
|
||||||
/// Notice no port is specified on the client
|
|
||||||
/// </summary>
|
|
||||||
public ScriptServerInterfaces.ServerRemotingObject Connect(string hostname, int port)
|
|
||||||
{
|
|
||||||
ScriptServerInterfaces.ServerRemotingObject obj = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// Create an instance of the remote object
|
|
||||||
obj = (ScriptServerInterfaces.ServerRemotingObject)Activator.GetObject(
|
|
||||||
typeof(ScriptServerInterfaces.ServerRemotingObject),
|
|
||||||
"tcp://" + hostname + ":" + port + "/DotNetEngine");
|
|
||||||
|
|
||||||
if (obj == null)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Error: unable to locate server");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (SocketException)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Error: unable to connect to server");
|
|
||||||
}
|
|
||||||
catch (RemotingException)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Error: unable to connect to server");
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,103 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the OpenSim Project nor the
|
|
||||||
* names of its contributors may be used to endorse or promote products
|
|
||||||
* derived from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
using log4net;
|
|
||||||
using Nini.Config;
|
|
||||||
using OpenSim.Region.Environment.Interfaces;
|
|
||||||
using OpenSim.Region.Environment.Scenes;
|
|
||||||
|
|
||||||
namespace OpenSim.Region.ScriptEngine.RemoteServer
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// This is the root object for RemoteServer. Objects access each other trough this class.
|
|
||||||
/// </summary>
|
|
||||||
///
|
|
||||||
[Serializable]
|
|
||||||
public class ScriptEngine : IRegionModule
|
|
||||||
{
|
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
|
||||||
|
|
||||||
internal Scene World;
|
|
||||||
internal EventManager m_EventManager; // Handles and queues incoming events from OpenSim
|
|
||||||
internal RemoteServer m_RemoteServer; // Handles connections to remote servers
|
|
||||||
|
|
||||||
public ScriptEngine()
|
|
||||||
{
|
|
||||||
Common.mySE = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ILog Log
|
|
||||||
{
|
|
||||||
get { return m_log; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void InitializeEngine(Scene Sceneworld)
|
|
||||||
{
|
|
||||||
World = Sceneworld;
|
|
||||||
|
|
||||||
m_log.Info("[ScriptEngine]: RemoteEngine (Remote Script Server) initializing");
|
|
||||||
// Create all objects we'll be using
|
|
||||||
m_EventManager = new EventManager(this);
|
|
||||||
m_RemoteServer = new RemoteServer();
|
|
||||||
m_RemoteServer.Connect("localhost", 1234);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Shutdown()
|
|
||||||
{
|
|
||||||
// We are shutting down
|
|
||||||
}
|
|
||||||
|
|
||||||
#region IRegionModule
|
|
||||||
|
|
||||||
public void Initialise(Scene scene, IConfigSource config)
|
|
||||||
{
|
|
||||||
InitializeEngine(scene);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PostInitialise()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Name
|
|
||||||
{
|
|
||||||
get { return "RemoteServerScriptingModule"; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsSharedModule
|
|
||||||
{
|
|
||||||
get { return false; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue