Add some commands to the grid server
							parent
							
								
									59ecd6d151
								
							
						
					
					
						commit
						7a352edd5a
					
				| 
						 | 
				
			
			@ -47,12 +47,16 @@ namespace OpenSim.Services.GridService
 | 
			
		|||
                MethodBase.GetCurrentMethod().DeclaringType);
 | 
			
		||||
 | 
			
		||||
        private bool m_DeleteOnUnregister = true;
 | 
			
		||||
        private static GridService m_RootInstance = null;
 | 
			
		||||
 | 
			
		||||
        public GridService(IConfigSource config)
 | 
			
		||||
            : base(config)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.DebugFormat("[GRID SERVICE]: Starting...");
 | 
			
		||||
 | 
			
		||||
            if (m_RootInstance == null)
 | 
			
		||||
                m_RootInstance = this;
 | 
			
		||||
 | 
			
		||||
            IConfig gridConfig = config.Configs["GridService"];
 | 
			
		||||
            if (gridConfig != null)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -298,13 +302,84 @@ namespace OpenSim.Services.GridService
 | 
			
		|||
 | 
			
		||||
        private void HandleShowRegion(string module, string[] cmd)
 | 
			
		||||
        {
 | 
			
		||||
            if (m_RootInstance != this)
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            if (cmd.Length != 3)
 | 
			
		||||
            {
 | 
			
		||||
                MainConsole.Instance.Output("Syntax: show region <region name>");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            List<RegionData> regions = m_Database.Get(cmd[2], UUID.Zero);
 | 
			
		||||
            if (regions == null || regions.Count < 1)
 | 
			
		||||
            {
 | 
			
		||||
                MainConsole.Instance.Output("Region not found");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            MainConsole.Instance.Output("Region Name          Region UUID");
 | 
			
		||||
            MainConsole.Instance.Output("Location             URI");
 | 
			
		||||
            MainConsole.Instance.Output("Owner ID                                Flags");
 | 
			
		||||
            MainConsole.Instance.Output("-------------------------------------------------------------------------------");
 | 
			
		||||
            foreach (RegionData r in regions)
 | 
			
		||||
            {
 | 
			
		||||
                OpenSim.Data.RegionFlags flags = (OpenSim.Data.RegionFlags)Convert.ToInt32(r.Data["flags"]);
 | 
			
		||||
                MainConsole.Instance.Output(String.Format("{0,-20} {1}\n{2,-20} {3}\n{4,-39} {5}\n\n",
 | 
			
		||||
                        r.RegionName, r.RegionID,
 | 
			
		||||
                        String.Format("{0},{1}", r.posX, r.posY), "http://" + r.Data["serverIP"].ToString() + ":" + r.Data["serverPort"].ToString(),
 | 
			
		||||
                        r.Data["owner_uuid"].ToString(), flags.ToString()));
 | 
			
		||||
            }
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private int ParseFlags(int prev, string flags)
 | 
			
		||||
        {
 | 
			
		||||
            OpenSim.Data.RegionFlags f = (OpenSim.Data.RegionFlags)prev;
 | 
			
		||||
 | 
			
		||||
            string[] parts = flags.Split(new char[] {',', ' '}, StringSplitOptions.RemoveEmptyEntries);
 | 
			
		||||
 | 
			
		||||
            foreach (string p in parts)
 | 
			
		||||
            {
 | 
			
		||||
                int val;
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    if (p.StartsWith("+"))
 | 
			
		||||
                    {
 | 
			
		||||
                        val = (int)Enum.Parse(typeof(OpenSim.Data.RegionFlags), p.Substring(1));
 | 
			
		||||
                        f |= (OpenSim.Data.RegionFlags)val;
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (p.StartsWith("-"))
 | 
			
		||||
                    {
 | 
			
		||||
                        val = (int)Enum.Parse(typeof(OpenSim.Data.RegionFlags), p.Substring(1));
 | 
			
		||||
                        f &= ~(OpenSim.Data.RegionFlags)val;
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        val = (int)Enum.Parse(typeof(OpenSim.Data.RegionFlags), p);
 | 
			
		||||
                        f |= (OpenSim.Data.RegionFlags)val;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception e)
 | 
			
		||||
                {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return (int)f;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void HandleSetFlags(string module, string[] cmd)
 | 
			
		||||
        {
 | 
			
		||||
            if (m_RootInstance != this)
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            if (cmd.Length < 4)
 | 
			
		||||
            {
 | 
			
		||||
                MainConsole.Instance.Output("Syntax: set region flags <region name> <flags>");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            MainConsole.Instance.Output(ParseFlags(0, cmd[3]).ToString());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue