aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Runtime.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Runtime.cs')
-rw-r--r--Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Runtime.cs212
1 files changed, 212 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Runtime.cs b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Runtime.cs
new file mode 100644
index 000000000..74ff16b1b
--- /dev/null
+++ b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Runtime.cs
@@ -0,0 +1,212 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading;
+
+namespace SharpCifs.Util.Sharpen
+{
+ public class Runtime
+ {
+ private static Runtime _instance;
+ private List<ShutdownHook> _shutdownHooks = new List<ShutdownHook> ();
+
+ internal void AddShutdownHook (IRunnable r)
+ {
+ ShutdownHook item = new ShutdownHook ();
+ item.Runnable = r;
+ _shutdownHooks.Add (item);
+ }
+
+ internal int AvailableProcessors ()
+ {
+ return Environment.ProcessorCount;
+ }
+
+ public static long CurrentTimeMillis ()
+ {
+ return DateTime.UtcNow.ToMillisecondsSinceEpoch ();
+ }
+
+ static Hashtable _properties;
+
+ public static Hashtable GetProperties ()
+ {
+ if (_properties == null) {
+ _properties = new Hashtable ();
+ _properties ["jgit.fs.debug"] = "false";
+ _properties["file.encoding"] = "UTF-8";
+ if (Path.DirectorySeparatorChar != '\\')
+ _properties ["os.name"] = "Unix";
+ else
+ _properties ["os.name"] = "Windows";
+ }
+ return _properties;
+ }
+
+ public static string GetProperty (string key)
+ {
+ if (GetProperties().Keys.Contains(key))
+ {
+ return ((string)GetProperties()[key]);
+ }
+ return null;
+ }
+
+ public static void SetProperty (string key, string value)
+ {
+ GetProperties () [key] = value;
+ }
+
+ public static Runtime GetRuntime ()
+ {
+ if (_instance == null) {
+ _instance = new Runtime ();
+ }
+ return _instance;
+ }
+
+ public static int IdentityHashCode (object ob)
+ {
+ return RuntimeHelpers.GetHashCode (ob);
+ }
+
+ internal long MaxMemory ()
+ {
+ return int.MaxValue;
+ }
+
+ private class ShutdownHook
+ {
+ public IRunnable Runnable;
+
+ ~ShutdownHook ()
+ {
+ Runnable.Run ();
+ }
+ }
+
+ public static void DeleteCharAt (StringBuilder sb, int index)
+ {
+ sb.Remove (index, 1);
+ }
+
+ public static byte[] GetBytesForString (string str)
+ {
+ return Encoding.UTF8.GetBytes (str);
+ }
+
+ public static byte[] GetBytesForString (string str, string encoding)
+ {
+ return Encoding.GetEncoding (encoding).GetBytes (str);
+ }
+
+ public static FieldInfo[] GetDeclaredFields (Type t)
+ {
+ throw new NotImplementedException("Type.GetFields not found on .NetStandard");
+ //return t.GetFields (BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
+ }
+
+ public static void NotifyAll (object ob)
+ {
+ Monitor.PulseAll (ob);
+ }
+
+ public static void Notify(object obj)
+ {
+ Monitor.Pulse(obj);
+ }
+
+ public static void PrintStackTrace (Exception ex)
+ {
+ Console.WriteLine (ex);
+ }
+
+ public static void PrintStackTrace (Exception ex, TextWriter tw)
+ {
+ tw.WriteLine (ex);
+ }
+
+ public static string Substring (string str, int index)
+ {
+ return str.Substring (index);
+ }
+
+ public static string Substring (string str, int index, int endIndex)
+ {
+ return str.Substring (index, endIndex - index);
+ }
+
+ public static void Wait (object ob)
+ {
+ Monitor.Wait (ob);
+ }
+
+ public static bool Wait (object ob, long milis)
+ {
+ return Monitor.Wait (ob, (int)milis);
+ }
+
+ public static Type GetType (string name)
+ {
+ throw new NotImplementedException("AppDomain.CurrentDomain.GetAssemblies not found on .NetStandard");
+ //foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies ()) {
+ // Type t = a.GetType (name);
+ // if (t != null)
+ // return t;
+ //}
+ //never used
+ //throw new InvalidOperationException ("Type not found: " + name);
+ }
+
+ public static void SetCharAt (StringBuilder sb, int index, char c)
+ {
+ sb [index] = c;
+ }
+
+ public static bool EqualsIgnoreCase (string s1, string s2)
+ {
+ return s1.Equals (s2, StringComparison.CurrentCultureIgnoreCase);
+ }
+
+ internal static long NanoTime ()
+ {
+ return Environment.TickCount * 1000 * 1000;
+ }
+
+ internal static int CompareOrdinal (string s1, string s2)
+ {
+ return string.CompareOrdinal (s1, s2);
+ }
+
+ public static string GetStringForBytes (byte[] chars)
+ {
+ return Encoding.UTF8.GetString (chars, 0, chars.Length);
+ }
+
+ public static string GetStringForBytes (byte[] chars, string encoding)
+ {
+ return GetEncoding (encoding).GetString (chars, 0, chars.Length);
+ }
+
+ public static string GetStringForBytes (byte[] chars, int start, int len)
+ {
+ return Encoding.UTF8.GetString (chars, start, len);
+ }
+
+ public static string GetStringForBytes (byte[] chars, int start, int len, string encoding)
+ {
+ return GetEncoding (encoding).Decode (chars, start, len);
+ }
+
+ public static Encoding GetEncoding (string name)
+ {
+ Encoding e = Encoding.GetEncoding (name.Replace ('_','-'));
+ if (e is UTF8Encoding)
+ return new UTF8Encoding (false, true);
+ return e;
+ }
+ }
+}