コード例 #1
0
        public void DeleteOldestMarkers(int markerToDeleteCount, String markerToSaveId,
                                        bool isRecognitionRunning)
        {
            List <Marker> markers = dbu.MarkerQuery("SELECT markerId FROM " +
                                                    "Markers WHERE markerId<>'" + markerToSaveId + "' AND " +
                                                    "databaseId IN (SELECT id FROM MarkerDatabase " +
                                                    " WHERE cloud=1) ORDER BY lastAccessDate DESC LIMIT " + markerToDeleteCount);

            foreach (Marker marker in markers)
            {
                dbu.Delete <Marker>(marker.markerId);
                if (isRecognitionRunning)
                {
#if UNITY_EDITOR_OSX || (UNITY_IOS && !UNITY_EDITOR_WIN)
                    PikkartARCore.DeleteLocalMarker(marker.markerId, true);
#else
                    PikkartARCore.DeleteLocalMarker(new StringBuilder(marker.markerId), true);
#endif
                }
                else
                {
                    File.Delete(StorageUtils.GetApplicationPersistentDataPath() + "markers/" + marker.markerId + ".dat");
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Deletes the marker.
        /// </summary>
        /// <param name="marker">Marker object.</param>
        public void DeleteMarker(Marker marker)
        {
#if UNITY_EDITOR_OSX || (UNITY_IOS && !UNITY_EDITOR_WIN)
            PikkartARCore.DeleteLocalMarker(marker.markerId, true);
#else
            PikkartARCore.DeleteLocalMarker(new StringBuilder(marker.markerId), true);
#endif
            dbu.Delete <Marker>(marker);
        }
コード例 #3
0
        /// <summary>
        /// Deletes obsolete local data.
        /// </summary>
        /// <param name="cacheMilliseconds">Cache milliseconds.</param>
        /// <param name="isRecognitionManagerRunning">is recognition manager running.</param>
        public void DeleteObsoleteLocalData(bool deleteFilesNotInSqlite, bool isRecognitionManagerRunning)
        {
            List <string> markersFileNames = new List <string>();
            List <Marker> dbMarkers        = GetMarkersList();
            string        markersPath      = RecognitionManager.GetAppDataPath() + "markers";

            if (!Directory.Exists(markersPath))
            {
                Directory.CreateDirectory(markersPath);
            }

            if (dbMarkers.Count > 0)
            {
                foreach (Marker marker in dbMarkers)
                {
                    string   markerId       = marker.markerId;
                    string   markerFileName = markerId + ".dat";
                    DateTime?publishedTo    = marker.publishedTo;

                    markersFileNames.Add(markerFileName);

                    if (publishedTo == null)
                    {
                        continue;
                    }

                    if (publishedTo.Value.CompareTo(DateTime.Now.ToUniversalTime()) < 0)
                    {
                        if (isRecognitionManagerRunning)
                        {
#if UNITY_EDITOR_OSX || (UNITY_IOS && !UNITY_EDITOR_WIN)
                            PikkartARCore.DeleteLocalMarker(markerId, true);
#else
                            PikkartARCore.DeleteLocalMarker(new StringBuilder(markerId), true);
#endif
                        }
                        else
                        {
                            string markerFilePath = markersPath + "/" + markerFileName;
                            if (!Directory.Exists(markersPath))
                            {
                                Directory.CreateDirectory(markersPath);
                            }
                            if (File.Exists(markerFilePath))
                            {
                                File.Delete(markerFilePath);
                            }
                        }
                    }
                }
            }

            if (deleteFilesNotInSqlite)
            {
                var        info      = new DirectoryInfo(markersPath);
                FileInfo[] filesInfo = info.GetFiles();

                foreach (FileInfo fileInfo in filesInfo)
                {
                    if (fileInfo.Name.Contains(".dat") && !markersFileNames.Contains(fileInfo.Name))
                    {
                        fileInfo.Delete();
                    }
                }
            }

            dbu.DeleteObsoleteMarkers();
        }