public HostingShell(IRobotItem itemSpecification, IHostManager hostManager, IRobotPeer peer, IRobotStatics jstatics, string dllFileName) { robotPeer = peer; Init(true); Open(dllFileName); JniGlobalHandle hmHandle = ((IJvmProxy)hostManager).JvmHandle; JniGlobalHandle peerhandle = ((IJvmProxy)peer).JvmHandle; JniGlobalHandle itemHandle = ((IJvmProxy)itemSpecification).JvmHandle; domain.SetData("hostManager", hmHandle.DangerousGetHandle()); domain.SetData("peer", peerhandle.DangerousGetHandle()); domain.SetData("item", itemHandle.DangerousGetHandle()); var statics = serializer.ConvertJ2C <RobotStatics>(RbSerializerN.RobotStatics_TYPE, (Object)jstatics); domain.SetData("statics", statics); domain.SetData("robotName", statics.getName()); try { domain.DoCallBack(HostingSeed.Construct); } catch (Exception) { robotPeer.punishBadBehavior(BadBehavior.SECURITY_VIOLATION); } hmHandle.HoldThisHandle(); peerhandle.HoldThisHandle(); itemHandle.HoldThisHandle(); }
public HostingShell(IRobotItem itemSpecification, IHostManager hostManager, IRobotPeer peer, IRobotStatics jstatics, string dllFileName) { robotPeer = peer; Init(true); Open(dllFileName); JniGlobalHandle hmHandle = ((IJvmProxy) hostManager).JvmHandle; JniGlobalHandle peerhandle = ((IJvmProxy)peer).JvmHandle; JniGlobalHandle itemHandle = ((IJvmProxy)itemSpecification).JvmHandle; domain.SetData("hostManager", hmHandle.DangerousGetHandle()); domain.SetData("peer", peerhandle.DangerousGetHandle()); domain.SetData("item", itemHandle.DangerousGetHandle()); var statics = serializer.ConvertJ2C<RobotStatics>(RbSerializerN.RobotStatics_TYPE, (Object) jstatics); domain.SetData("statics", statics); domain.SetData("robotName", statics.getName()); try { domain.DoCallBack(HostingSeed.Construct); } catch (Exception) { robotPeer.punishBadBehavior(BadBehavior.SECURITY_VIOLATION); } hmHandle.HoldThisHandle(); peerhandle.HoldThisHandle(); itemHandle.HoldThisHandle(); }
public static string GetDllFileName(IRobotItem robotItem) { string uriString = robotItem.getClassPathURL().toURI().toString(); string trim = uriString.Substring(0, uriString.LastIndexOf(".dll!/") + 4); return(new Uri(trim).LocalPath); }
public static void Construct() { try { ModuleN.InitN(); JNIEnv env = JNIEnv.ThreadEnv; JniGlobalHandle hmHandle = env.NewGlobalRef((JniHandle)domain.GetData("hostManager")); JniGlobalHandle peerHandle = env.NewGlobalRef((JniHandle)domain.GetData("peer")); JniGlobalHandle itemHandle = env.NewGlobalRef((JniHandle)domain.GetData("item")); hostManager = Bridge.CreateProxy<IHostManager>(hmHandle); robotPeer = Bridge.CreateProxy<IRobotPeer>(peerHandle); specification = Bridge.CreateProxy<IRobotItem>(itemHandle); statics = ((RobotStatics)domain.GetData("statics")); CreateProxy(); Assembly assembly = Assembly.LoadFrom(robotAssemblyShadowFileName); Reflection.CheckAssembly(assembly); string robotFullName = specification.getFullClassName(); robotType = assembly.GetType(robotFullName, false); robotProxy.setRobotType(robotType); } catch (Exception ex) { LoggerN.logError(ex); throw; } }
public static void Construct() { try { ModuleN.InitN(); JNIEnv env = JNIEnv.ThreadEnv; JniGlobalHandle hmHandle = env.NewGlobalRef((JniHandle)domain.GetData("hostManager")); JniGlobalHandle peerHandle = env.NewGlobalRef((JniHandle)domain.GetData("peer")); JniGlobalHandle itemHandle = env.NewGlobalRef((JniHandle)domain.GetData("item")); hostManager = Bridge.CreateProxy <IHostManager>(hmHandle); robotPeer = Bridge.CreateProxy <IRobotPeer>(peerHandle); specification = Bridge.CreateProxy <IRobotItem>(itemHandle); statics = ((RobotStatics)domain.GetData("statics")); CreateProxy(); Assembly assembly = Assembly.LoadFrom(robotAssemblyShadowFileName); Reflection.CheckAssembly(assembly); string robotFullName = specification.getFullClassName(); robotType = assembly.GetType(robotFullName, false); robotProxy.setRobotType(robotType); } catch (Exception ex) { LoggerN.logError(ex); throw; } }
protected HostingRobotProxy(IRobotItem robotSpecification, IHostManager hostManager, IRobotPeer peer, RobotStatics statics) { this.peer = peer; this.statics = statics; this.hostManager = hostManager; this.robotSpecification = robotSpecification; outputSb = new StringBuilder(5000); output = TextWriter.Synchronized(new StringWriter(outputSb)); LoggerN.robotOut = output; robotFileSystemManager = new RobotFileSystemManager(this, (int)hostManager.getRobotFilesystemQuota(), robotSpecification.getWritableDirectory(), robotSpecification.getReadableDirectory()); }
protected HostingRobotProxy(IRobotItem robotSpecification, IHostManager hostManager, IRobotPeer peer, RobotStatics statics) { this.peer = peer; this.statics = statics; this.hostManager = hostManager; this.robotSpecification = robotSpecification; outputSb = new StringBuilder(5000); output = TextWriter.Synchronized(new StringWriter(outputSb)); LoggerN.robotOut = output; robotFileSystemManager = new RobotFileSystemManager(this, (int) hostManager.getRobotFilesystemQuota(), robotSpecification.getWritableDirectory(), robotSpecification.getReadableDirectory()); }
public BasicRobotProxy(IRobotItem specification, IHostManager hostManager, IRobotPeer peer, RobotStatics statics) : base(specification, hostManager, peer, statics) { eventManager = new EventManager(this); graphicsProxy = new GraphicsProxy(); // dummy execResults = new ExecResults(null, null, null, null, null, false, false, false); setSetCallCount(0); setGetCallCount(0); var sharedBuffer = new byte[10*1024*100]; execJavaBuffer = new DirectByteBuffer(sharedBuffer); execNetBuffer = ByteBuffer.wrap(sharedBuffer); rbSerializerN = new RbSerializerN(); this.peer.setupBuffer(execJavaBuffer); }
public static RobotType GetRobotType(IRobotItem robotItem) { string file = GetDllFileName(robotItem); if (!File.Exists(file)) { return RobotType.Invalid; } if (shell != null) { shell.Open(file); return shell.GetRobotType(robotItem.getFullClassName()); } using (AppDomainShell localshell = new AppDomainShell()) { localshell.Init(false); localshell.Open(file); return localshell.GetRobotType(robotItem.getFullClassName()); } }
public BasicRobotProxy(IRobotItem specification, IHostManager hostManager, IRobotPeer peer, RobotStatics statics) : base(specification, hostManager, peer, statics) { eventManager = new EventManager(this); graphicsProxy = new GraphicsProxy(); // dummy execResults = new ExecResults(null, null, null, null, null, false, false, false); setSetCallCount(0); setGetCallCount(0); var sharedBuffer = new byte[10 * 1024 * 100]; execJavaBuffer = new DirectByteBuffer(sharedBuffer); execNetBuffer = ByteBuffer.wrap(sharedBuffer); rbSerializerN = new RbSerializerN(); this.peer.setupBuffer(execJavaBuffer); }
public static RobotType GetRobotType(IRobotItem robotItem) { string file = GetDllFileName(robotItem); if (!File.Exists(file)) { return(RobotType.Invalid); } if (shell != null) { shell.Open(file); return(shell.GetRobotType(robotItem.getFullClassName())); } using (AppDomainShell localshell = new AppDomainShell()) { localshell.Init(false); localshell.Open(file); return(localshell.GetRobotType(robotItem.getFullClassName())); } }
public StandardRobotProxy(IRobotItem specification, IHostManager hostManager, IRobotPeer peer, RobotStatics statics) : base(specification, hostManager, peer, statics) { }
public JuniorRobotProxy(IRobotItem specification, IHostManager hostManager, IRobotPeer peer, RobotStatics statics) : base(specification, hostManager, peer, statics) { }
public RobotType getRobotType(IRobotItem robotItem, bool resolve, bool message) { return DllRootHelper.GetRobotType(robotItem); }
public static string GetDllFileName(IRobotItem robotItem) { string uriString = robotItem.getClassPathURL().toURI().toString(); string trim = uriString.Substring(0, uriString.LastIndexOf(".dll!/") + 4); return new Uri(trim).LocalPath; }
public String[] getReferencedClasses(IRobotItem robotItem) { return new String[] {}; }
public String[] getReferencedClasses(IRobotItem robotItem) { return(new String[] {}); }
public RobotType getRobotType(IRobotItem robotItem, bool resolve, bool message) { return(DllRootHelper.GetRobotType(robotItem)); }