예제 #1
0
 protected virtual void Dispose(bool disposing)
 {
     if (m_nativeSend != null)
     {
         m_nativeSend.Release(IntPtr.Zero);
         m_nativeSend = null;
     }
 }
예제 #2
0
 protected virtual void Dispose(bool disposing)
 {
     if (m_native != null)
     {
         m_native.Release(IntPtr.Zero);
         m_native = null;
     }
     if (m_nativeRef != IntPtr.Zero)
     {
         Registration.removeObject(m_nativeRef);
         m_nativeRef = IntPtr.Zero;
     }
 }
예제 #3
0
 public CppProxyOutputFunction(signals.IModule module, IntPtr native)
     : base(module, native)
 {
     m_nativeSendRef = new IntPtr(native.ToInt64() + IntPtr.Size);
     m_nativeSend = (Native.IEPSendTo)CppNativeProxy.CreateCallout(m_nativeSendRef, typeof(Native.IEPSendTo));
     m_nativeSend.AddRef(IntPtr.Zero);
 }
예제 #4
0
 public CppProxyEPSender(signals.IBlockDriver driver, IntPtr native)
 {
     if (driver == null) throw new ArgumentNullException("driver");
     if (native == IntPtr.Zero) throw new ArgumentNullException("native");
     m_driver = driver;
     m_nativeRef = native;
     Registration.storeObject(native, this);
     m_native = (Native.IEPSendTo)CppNativeProxy.CreateCallout(native, typeof(Native.IEPSendTo));
     m_native.AddRef(IntPtr.Zero);
 }