summaryrefslogtreecommitdiff
path: root/YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs
diff options
context:
space:
mode:
Diffstat (limited to 'YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs')
-rw-r--r--YesCommander/Assets/ThirdParty/StringUtil/VStringShareObject.cs56
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;
+ }
+ }
+}