示例#1
0
        private byte[] GetSafeRegions(Dictionary <string, object> request)
        {
            //m_log.DebugFormat("[GRID HANDLER]: GetRegionRange");
            UUID scopeID = UUID.Zero;

            if (request.ContainsKey("SCOPEID"))
            {
                UUID.TryParse(request["SCOPEID"].ToString(), out scopeID);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no scopeID in request to get fallback regions");
            }

            int x = 0, y = 0;

            if (request.ContainsKey("X"))
            {
                Int32.TryParse(request["X"].ToString(), out x);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no X in request to get fallback regions");
            }
            if (request.ContainsKey("Y"))
            {
                Int32.TryParse(request["Y"].ToString(), out y);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no Y in request to get fallback regions");
            }


            List <GridRegion> rinfos           = m_GridService.GetSafeRegions(scopeID, x, y);

            rinfos = CleanRegions(rinfos);

            Dictionary <string, object> result = new Dictionary <string, object>();

            if ((rinfos == null) || ((rinfos != null) && (rinfos.Count == 0)))
            {
                result["result"] = "null";
            }
            else
            {
                int i = 0;
                foreach (GridRegion rinfo in rinfos)
                {
                    Dictionary <string, object> rinfoDict = rinfo.ToKeyValuePairs();
                    result["region" + i] = rinfoDict;
                    i++;
                }
            }
            string xmlString                   = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
示例#2
0
        private GridRegion FindDefaultRegion()
        {
            GridRegion region = null;

            if (m_defaultRegion != "")//This overrides all
            {
                region = m_GridService.GetRegionByName(null, m_defaultRegion);
                if (region != null)
                {
                    m_foundDefaultRegion = true;
                    return(region);
                }
            }
            List <GridRegion> defs = m_GridService.GetDefaultRegions(null);

            if (defs != null && defs.Count > 0)
            {
                region = FindRegion(defs);
            }
            if (region == null)
            {
                defs = m_GridService.GetFallbackRegions(null, 0, 0);
                if (defs != null && defs.Count > 0)
                {
                    region = FindRegion(defs);
                }
                if (region == null)
                {
                    defs = m_GridService.GetSafeRegions(null, 0, 0);
                    if (defs != null && defs.Count > 0)
                    {
                        region = FindRegion(defs);
                    }
                    if (region == null)
                    {
                        MainConsole.Instance.WarnFormat("[GATEKEEPER SERVICE]: Please specify a default region for this grid!");
                    }
                }
            }
            if (region != null)
            {
                m_foundDefaultRegion = true;
            }
            return(region);
        }
 public List <GridRegion> GetSafeRegions(UUID scopeID, int x, int y)
 {
     return(m_localService.GetSafeRegions(scopeID, x, y));
 }