diff options
Diffstat (limited to 'YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs')
-rw-r--r-- | YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs b/YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs new file mode 100644 index 0000000..22fd660 --- /dev/null +++ b/YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs @@ -0,0 +1,56 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace YC +{ + + public static class VStringShareObject + { + + private static volatile object lockThis = new object(); + private static int _internalVsIndex; + private static VString[] _internalVSArray = new VString[] + { + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048), + new VString(2048) + }; + + + public static VString GetShareVString() + { + lock (lockThis) + { + _internalVsIndex = (_internalVsIndex + 1) % _internalVSArray.Length; + VString vString = _internalVSArray[_internalVsIndex]; + vString.Clear(); + return vString; + } + } + + public static bool UseShareObject(string str) + { + for (int i = 0; i < _internalVSArray.Length; ++i) + { + if (string.ReferenceEquals(str, _internalVSArray[i].GetString())) + { + return true; + } + } + return false; + } + } +} |