Hugh Sanderson пре 13 година
родитељ
комит
2a0b15e90d
1 измењених фајлова са 37 додато и 0 уклоњено
  1. 37 0
      std/cpp/vm/WeakRef.hx

+ 37 - 0
std/cpp/vm/WeakRef.hx

@@ -0,0 +1,37 @@
+package cpp.vm;
+
+
+class WeakRef<T>
+{
+   var ref:Dynamic;
+   var hardRef:Bool;
+
+
+	public function new(inObject:T, inHard:Bool = false)
+	{
+		hardRef = inHard;
+		if (hardRef)
+         ref = inObject;
+      else
+			ref = untyped __global__.__hxcpp_weak_ref_create(inObject);
+	}
+	
+	
+	public function get():T
+	{
+		if (hardRef)
+			return ref;
+		
+		return  untyped __global__.__hxcpp_weak_ref_get(ref);
+	}
+	
+	
+	public function toString():String
+	{
+		if (hardRef)
+			return "" + hardRef;
+		
+		return "WeakRef(" + ref + ")";
+	}
+}
+