123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- 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;
- }
- }
- }
|