Ejemplo n.º 1
0
        public bool LinkRegion(string regionName, out UUID regionID, out ulong regionHandle, out string externalName, out string imageURL, out string reason, out int sizeX, out int sizeY)
        {
            regionID     = UUID.Zero;
            regionHandle = 0;
            sizeX        = (int)Constants.RegionSize;
            sizeY        = (int)Constants.RegionSize;
            externalName = m_ExternalName + ((regionName != string.Empty) ? " " + regionName : "");
            imageURL     = string.Empty;
            reason       = string.Empty;
            GridRegion region = null;

            m_log.DebugFormat("[GATEKEEPER SERVICE]: Request to link to {0}", (regionName == string.Empty)? "default region" : regionName);
            if (!m_AllowTeleportsToAnyRegion || regionName == string.Empty)
            {
                List <GridRegion> defs = m_GridService.GetDefaultHypergridRegions(m_ScopeID);
                if (defs != null && defs.Count > 0)
                {
                    region = defs[0];
                    m_DefaultGatewayRegion = region;
                }
                else
                {
                    reason = "Grid setup problem. Try specifying a particular region here.";
                    m_log.DebugFormat("[GATEKEEPER SERVICE]: Unable to send information. Please specify a default region for this grid!");
                    return(false);
                }
            }
            else
            {
                region = m_GridService.GetRegionByName(m_ScopeID, regionName);
                if (region == null)
                {
                    reason = "Region not found";
                    return(false);
                }
            }

            regionID     = region.RegionID;
            regionHandle = region.RegionHandle;
            sizeX        = region.RegionSizeX;
            sizeY        = region.RegionSizeY;

            string regionimage = "regionImage" + regionID.ToString();

            regionimage = regionimage.Replace("-", "");
            imageURL    = region.ServerURI + "index.php?method=" + regionimage;

            return(true);
        }
Ejemplo n.º 2
0
        public List <GridRegion> GetDefaultHypergridRegions(UUID scopeID)
        {
            List <GridRegion> rinfo = m_LocalGridService.GetDefaultHypergridRegions(scopeID);
            //m_log.DebugFormat("[REMOTE GRID CONNECTOR]: Local GetDefaultHypergridRegions {0} found {1} regions", name, rinfo.Count);
            List <GridRegion> grinfo = m_RemoteGridService.GetDefaultHypergridRegions(scopeID);

            if (grinfo != null)
            {
                //m_log.DebugFormat("[REMOTE GRID CONNECTOR]: Remote GetDefaultHypergridRegions {0} found {1} regions", name, grinfo.Count);
                foreach (GridRegion r in grinfo)
                {
                    m_RegionInfoCache.Cache(r);
                    if (rinfo.Find(delegate(GridRegion gr) { return(gr.RegionID == r.RegionID); }) == null)
                    {
                        rinfo.Add(r);
                    }
                }
            }

            return(rinfo);
        }
Ejemplo n.º 3
0
        byte[] GetDefaultHypergridRegions(Dictionary <string, object> request)
        {
            //m_log.DebugFormat("[GRID HANDLER]: GetDefaultRegions");
            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 region range");
            }

            List <GridRegion> rinfos = m_GridService.GetDefaultHypergridRegions(scopeID);

            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 = ServerUtils.BuildXmlResponse(result);

            //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
            return(Util.UTF8NoBomEncoding.GetBytes(xmlString));
        }
Ejemplo n.º 4
0
 public List <GridRegion> GetDefaultHypergridRegions(UUID scopeID)
 {
     return(m_GridService.GetDefaultHypergridRegions(scopeID));
 }