예제 #1
0
        void ISQLite3Provider.sqlite3_commit_hook(IntPtr db, delegate_commit func, object v)
        {
            if (_commit_hook != null)
            {
                // TODO maybe turn off the hook here, for now
                _commit_hook.free();
                _commit_hook = null;
            }

            if (func != null)
            {
                _commit_hook = new commit_hook_info(func, v);
                SQLite3RuntimeProvider.sqlite3_commit_hook(db.ToInt64(), Marshal.GetFunctionPointerForDelegate(new callback_commit(commit_hook_bridge)).ToInt64(), _commit_hook.ptr.ToInt64());
            }
            else
            {
                SQLite3RuntimeProvider.sqlite3_commit_hook(db.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64());
            }
        }