Пример #1
0
 internal SandboxedHost(IHost host, IObjectAccessor accessor, MicroScheduler scheduler)
 {
     m_host = host;
     m_accessor = accessor;
     m_graphics = new SandboxedGraphics(host.Graphics);
     m_scheduler = scheduler;
 }
Пример #2
0
        public string Start(string assembly, string clazz, IHost host, IWorld world, UUID id, string name, Unloader unloader, string[] args)
        {
            m_scheduler = new MicroScheduler();
            _unloader = unloader;
            AppDomain.CurrentDomain.UnhandledException += (sender, exceptionArgs) => Kill(exceptionArgs.ExceptionObject as Exception);

            try {
                m_id = id;
                m_name = name;
                m_mrm = (MRMBase)Activator.CreateInstanceFrom(assembly, clazz).Unwrap();
                m_world = new SandboxedWorld(world);
                m_host = new SandboxedHost(host, m_world.Objects, m_scheduler);
                m_mrm.InitMiniModule(m_world, m_host, id);
                m_mrm.Start(args);
            } catch (Exception e) {
                return FullError(e);
            }
            return null;
        }