1 //------------------------------------------------------------------------------
4 // This file was automatically generated by SWIG (http://www.swig.org).
7 // Do not make changes to this file unless you know what you are doing--modify
8 // the SWIG interface file instead.
9 //------------------------------------------------------------------------------
14 internal class RefObject : global::System.IDisposable
16 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
17 protected bool swigCMemOwn;
19 internal RefObject(global::System.IntPtr cPtr, bool cMemoryOwn)
21 swigCMemOwn = cMemoryOwn;
22 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
25 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RefObject obj)
27 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
30 //A Flag to check who called Dispose(). (By User or DisposeQueue)
31 private bool isDisposeQueued = false;
32 //A Flat to check if it is already disposed.
33 protected bool disposed = false;
39 isDisposeQueued = true;
40 DisposeQueue.Instance.Add(this);
46 //Throw excpetion if Dispose() is called in separate thread.
47 if (!Window.IsInstalled())
49 throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
54 Dispose(DisposeTypes.Implicit);
58 Dispose(DisposeTypes.Explicit);
59 System.GC.SuppressFinalize(this);
63 protected virtual void Dispose(DisposeTypes type)
70 if (type == DisposeTypes.Explicit)
73 //Release your own managed resources here.
74 //You should release all of your own disposable objects here.
78 //Release your own unmanaged resources here.
79 //You should not access any managed member here except static instance.
80 //because the execution order of Finalizes is non-deterministic.
82 if (swigCPtr.Handle != global::System.IntPtr.Zero)
87 throw new global::System.MethodAccessException("C++ destructor does not have public access");
89 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
95 public static RefObject GetRefObjectFromPtr(global::System.IntPtr cPtr)
97 RefObject ret = new RefObject(cPtr, false);
98 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
102 public void Reference()
104 NDalicPINVOKE.RefObject_Reference(swigCPtr);
105 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
108 public void Unreference()
110 NDalicPINVOKE.RefObject_Unreference(swigCPtr);
111 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
114 public int ReferenceCount()
116 int ret = NDalicPINVOKE.RefObject_ReferenceCount(swigCPtr);
117 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();