Example #1
0
        public override List <MaptileInfo> GetUpdateTimes(GridVector minloc, GridVector maxloc, int zoomlevel)
        {
            var infos = new List <MaptileInfo>();

            using (var connection = new NpgsqlConnection(m_ConnectionString))
            {
                connection.Open();
                using (var cmd = new NpgsqlCommand("SELECT \"LocX\", \"LocY\", \"LastUpdate\" FROM maptiles WHERE \"ZoomLevel\" = @zoomlevel AND \"LocX\" >= @locxlow AND \"LocY\" >= @locylow AND \"LocX\" <= @locxhigh AND \"LocY\" <= @locyhigh", connection))
                {
                    cmd.Parameters.AddParameter("@zoomlevel", zoomlevel);
                    cmd.Parameters.AddParameter("@locxlow", minloc.X);
                    cmd.Parameters.AddParameter("@locylow", minloc.Y);
                    cmd.Parameters.AddParameter("@locxhigh", maxloc.X);
                    cmd.Parameters.AddParameter("@locyhigh", maxloc.Y);
                    using (NpgsqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var info = new MaptileInfo
                            {
                                Location = new GridVector {
                                    X = (uint)(int)reader["LocX"], Y = (uint)(int)reader["LocY"]
                                },
                                LastUpdate = reader.GetDate("LastUpdate"),
                                ZoomLevel  = zoomlevel
                            };
                            infos.Add(info);
                        }
                    }
                }
            }
            return(infos);
        }
        private bool IsEqual(MaptileInfo a, MaptileInfo b)
        {
            var mismatches = new List <string>();

            if (a.Location != b.Location)
            {
                mismatches.Add("Location");
            }

            if (Math.Abs((long)a.LastUpdate.AsULong - (long)b.LastUpdate.AsULong) > 1)
            {
                m_Log.InfoFormat("LastUpdate mismatch {0} != {1}", a.LastUpdate.AsULong, b.LastUpdate.AsULong);
                mismatches.Add("LastUpdate");
            }

            if (a.ZoomLevel != b.ZoomLevel)
            {
                mismatches.Add("ZoomLevel");
            }

            if (mismatches.Count != 0)
            {
                m_Log.InfoFormat("Mismatches: {0}", string.Join(" ", mismatches));
            }

            return(mismatches.Count == 0);
        }
        public override List <MaptileInfo> GetUpdateTimes(UUID scopeid, GridVector minloc, GridVector maxloc, int zoomlevel)
        {
            var infos = new List <MaptileInfo>();

            using (var connection = new MySqlConnection(m_ConnectionString))
            {
                connection.Open();
                using (var cmd = new MySqlCommand("SELECT LocX, LocY, LastUpdate FROM maptiles WHERE ScopeID = @scopeid AND ZoomLevel = @zoomlevel AND locX >= @locxlow AND locY >= @locylow AND locX <= @locxhigh AND locY <= @locyhigh", connection))
                {
                    cmd.Parameters.AddParameter("@scopeid", scopeid);
                    cmd.Parameters.AddParameter("@zoomlevel", zoomlevel);
                    cmd.Parameters.AddParameter("@locxlow", minloc.X);
                    cmd.Parameters.AddParameter("@locylow", minloc.Y);
                    cmd.Parameters.AddParameter("@locxhigh", maxloc.X);
                    cmd.Parameters.AddParameter("@locyhigh", maxloc.Y);
                    using (MySqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var info = new MaptileInfo()
                            {
                                Location = new GridVector {
                                    X = reader.GetUInt32("LocX"), Y = reader.GetUInt32("LocY")
                                },
                                LastUpdate = reader.GetDate("LastUpdate"),
                                ScopeID    = scopeid,
                                ZoomLevel  = zoomlevel
                            };
                            infos.Add(info);
                        }
                    }
                }
            }
            return(infos);
        }
Example #4
0
 public MaptileInfo(MaptileInfo info)
 {
     Location   = info.Location;
     LastUpdate = new Date(info.LastUpdate);
     ZoomLevel  = info.ZoomLevel;
 }