示例#1
0
        internal update_hook_info(delegate_update func, object v)
        {
            _func      = func;
            _user_data = v;

            _h = GCHandle.Alloc(this);
        }
示例#2
0
        void ISQLite3Provider.sqlite3_update_hook(IntPtr db, delegate_update func, object v)
        {
            if (_update_hook != null)
            {
                // TODO maybe turn off the hook here, for now
                _update_hook.free();
                _update_hook = null;
            }

            if (func != null)
            {
                _update_hook = new update_hook_info(func, v);
                SQLite3RuntimeProvider.sqlite3_update_hook(db.ToInt64(), Marshal.GetFunctionPointerForDelegate(new callback_update(update_hook_bridge)).ToInt64(), _update_hook.ptr.ToInt64());
            }
            else
            {
                SQLite3RuntimeProvider.sqlite3_update_hook(db.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64());
            }
        }
示例#3
0
 internal void free()
 {
     _func      = null;
     _user_data = null;
     _h.Free();
 }
示例#4
0
 void ISQLite3Provider.sqlite3_update_hook(IntPtr db, delegate_update func, object v)
 {
     throw new Exception(GRIPE);
 }
示例#5
0
 public update_hook_info(delegate_update func, object v)
 {
     _func      = func;
     _user_data = v;
 }
示例#6
0
 static public void sqlite3_update_hook(sqlite3 db, delegate_update f, object v)
 {
     _imp.sqlite3_update_hook(db.ptr, f, v);
 }
        void ISQLite3Provider.sqlite3_update_hook (IntPtr db, delegate_update func, object v)
        {
            var info = hooks.getOrCreateFor (db);
            if (info.update != null) {
                // TODO maybe turn off the hook here, for now
                info.update.free ();
                info.update = null;
            }

            if (func != null) {
                info.update = new update_hook_info (func, v);
                NativeMethods.sqlite3_update_hook (db, update_hook_bridge, info.update.ptr);
            } else {
                NativeMethods.sqlite3_update_hook (db, null, IntPtr.Zero);
            }
        }
示例#8
0
 static public void sqlite3_update_hook(sqlite3 db, delegate_update f, object v)
 {
     _imp.sqlite3_update_hook(db.ptr, f, v);
 }
示例#9
0
 public static void update_hook(this sqlite3 db, delegate_update f, object v)
 {
     raw.sqlite3_update_hook(db, f, v);
 }
示例#10
0
 internal void free()
 {
     _func = null;
     _user_data = null;
     _h.Free();
 }
示例#11
0
        internal update_hook_info(delegate_update func, object v)
        {
            _func = func;
            _user_data = v;

            _h = GCHandle.Alloc(this);
        }
 public void sqlite3_update_hook(IntPtr db, delegate_update func, object v) => throw new NotImplementedException();
示例#13
0
        void ISQLite3Provider.sqlite3_update_hook(IntPtr db, delegate_update func, object v)
        {
            if (_update_hook != null)
            {
                // TODO maybe turn off the hook here, for now
                _update_hook.free();
                _update_hook = null;
            }

            if (func != null)
            {
                _update_hook = new update_hook_info(func, v);
                NativeMethods.sqlite3_update_hook(db, update_hook_bridge, _update_hook.ptr);
            }
            else
            {
                NativeMethods.sqlite3_update_hook(db, null, IntPtr.Zero);
            }
        }
        void ISQLite3Provider.sqlite3_update_hook(IntPtr db, delegate_update func, object v)
        {
		var info = hooks.getOrCreateFor(db);
            if (info.update != null)
            {
                // TODO maybe turn off the hook here, for now
                info.update.free();
                info.update = null;
            }

            if (func != null)
            {
                info.update = new update_hook_info(func, v);
                SQLite3RuntimeProvider.sqlite3_update_hook(db.ToInt64(), Marshal.GetFunctionPointerForDelegate(update_hook_bridge).ToInt64(), info.update.ptr.ToInt64());
            }
            else
            {
                SQLite3RuntimeProvider.sqlite3_update_hook(db.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64());
            }
        }
示例#15
0
        void ISQLite3Provider.sqlite3_update_hook(IntPtr db, delegate_update func, object v)
        {
	    throw new Exception(GRIPE);
        }
        void ISQLite3Provider.sqlite3_update_hook(IntPtr db, delegate_update func, object v)
        {
            if (_update_hook != null)
            {
                // TODO maybe turn off the hook here, for now
                _update_hook.free();
                _update_hook = null;
            }

            if (func != null)
            {
                _update_hook = new update_hook_info(func, v);
                SQLite3RuntimeProvider.sqlite3_update_hook(db.ToInt64(), Marshal.GetFunctionPointerForDelegate(new callback_update(update_hook_bridge)).ToInt64(), _update_hook.ptr.ToInt64());
            }
            else
            {
                SQLite3RuntimeProvider.sqlite3_update_hook(db.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64());
            }
        }