Ignore:
Timestamp:
Jan 27, 2023, 7:28:00 PM (22 months ago)
Author:
alloc
Message:
  • Major refactoring
  • Using Utf8Json for (de)serialization
  • Moving APIs to REST
  • Removing dependencies from WebServer and MapRenderer to ServerFixes
File:
1 copied

Legend:

Unmodified
Added
Removed
  • binary-improvements2/MapRendering/src/MapTileCache.cs

    r399 r402  
    11using System;
     2using System.Diagnostics.CodeAnalysis;
    23using System.IO;
    34using UnityEngine;
    45using UnityEngine.Profiling;
     6using Webserver.FileCache;
    57using Object = UnityEngine.Object;
    68
    7 namespace AllocsFixes.FileCache {
     9namespace MapRendering {
    810        // Special "cache" for map tile folder as both map rendering and webserver access files in there.
    911        // Only map rendering tiles are cached. Writing is done by WriteThrough.
     
    2527                }
    2628
     29                // SetZoomCount only called before processing happens in MapRenderer.ctor, no locking required
     30                [SuppressMessage ("ReSharper", "InconsistentlySynchronizedField")]
    2731                public void SetZoomCount (int _count) {
    2832                        cache = new CurrentZoomFile[_count];
     
    5559                                }
    5660                        } catch (Exception e) {
    57                                 Log.Warning ("Error in MapTileCache.LoadTile: " + e);
     61                                Log.Warning ($"Error in MapTileCache.LoadTile: {e}");
    5862                        }
    5963
     
    8185                                }
    8286                        } catch (Exception e) {
    83                                 Log.Warning ("Error in MapTileCache.SaveTile: " + e);
     87                                Log.Warning ($"Error in MapTileCache.SaveTile: {e}");
    8488                        }
    8589                }
     
    9296                                }
    9397                        } catch (Exception e) {
    94                                 Log.Warning ("Error in MapTileCache.ResetTile: " + e);
     98                                Log.Warning ($"Error in MapTileCache.ResetTile: {e}");
    9599                        }
    96100                }
     
    108112                                }
    109113                        } catch (Exception e) {
    110                                 Log.Warning ("Error in MapTileCache.GetFileContent: " + e);
     114                                Log.Warning ($"Error in MapTileCache.GetFileContent: {e}");
    111115                        }
    112116
     
    119123
    120124                private static byte[] ReadAllBytes (string _path) {
    121                         using (FileStream fileStream = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.Read, 4096)) {
    122                                 int bytesRead = 0;
    123                                 int bytesLeft = (int) fileStream.Length;
    124                                 byte[] result = new byte[bytesLeft];
    125                                 while (bytesLeft > 0) {
    126                                         int readThisTime = fileStream.Read (result, bytesRead, bytesLeft);
    127                                         if (readThisTime == 0) {
    128                                                 throw new IOException ("Unexpected end of stream");
    129                                         }
    130 
    131                                         bytesRead += readThisTime;
    132                                         bytesLeft -= readThisTime;
     125                        using FileStream fileStream = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.Read, 4096);
     126                       
     127                        int bytesRead = 0;
     128                        int bytesLeft = (int) fileStream.Length;
     129                        byte[] result = new byte[bytesLeft];
     130                        while (bytesLeft > 0) {
     131                                int readThisTime = fileStream.Read (result, bytesRead, bytesLeft);
     132                                if (readThisTime == 0) {
     133                                        throw new IOException ("Unexpected end of stream");
    133134                                }
    134135
    135                                 return result;
     136                                bytesRead += readThisTime;
     137                                bytesLeft -= readThisTime;
    136138                        }
     139
     140                        return result;
    137141                }
    138142
Note: See TracChangeset for help on using the changeset viewer.