Ejemplo n.º 1
0
 static public void sqlite3_trace(sqlite3 db, delegate_trace f, object v)
 {
     _imp.sqlite3_trace(db.ptr, f, v);
 }
        void ISQLite3Provider.sqlite3_trace (IntPtr db, delegate_trace func, object v)
        {
            var info = hooks.getOrCreateFor (db);
            if (info.trace != null) {
                // TODO maybe turn off the hook here, for now
                info.trace.free ();
                info.trace = null;
            }

            if (func != null) {
                info.trace = new trace_hook_info (func, v);
                NativeMethods.sqlite3_trace (db, trace_hook_bridge, info.trace.ptr);
            } else {
                NativeMethods.sqlite3_trace (db, null, IntPtr.Zero);
            }
        }
Ejemplo n.º 3
0
        internal trace_hook_info(delegate_trace func, object v)
        {
            _func = func;
            _user_data = v;

            _h = GCHandle.Alloc(this);
        }
Ejemplo n.º 4
0
 internal void free()
 {
     _func = null;
     _user_data = null;
     _h.Free();
 }
Ejemplo n.º 5
0
            /// <summary>
            /// Выводит сообщение в указанный Tracer
            /// </summary>
            /// <param name="text">Любой текст</param>
            public static void trace(string text)
            {
                //ФУНКЦИЯ: Выводит text новой строкой с датой в RichTextBox и в файл, если эти действия разарешены
                string TEXT = Environment.NewLine + "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + text;
                if (tracer_defined && tracer_enabled)
                {
                    //Трэйсер определён и разрешён
                    if (tracer.InvokeRequired)
                    {
                        delegate_trace a_delegate = new delegate_trace(trace);
                        tracer.Invoke(a_delegate, text);
                    }
                    else
                    {
                        tracer.AppendText(TEXT);
                        tracer.ScrollToCaret();
                    }

                }
                if (tracer_log_enabled)
                {
                    //Вывод в файл разрешён
                    System.IO.File.AppendAllText("Log.txt", TEXT);
                }
            }
Ejemplo n.º 6
0
 public static void trace_attached(string text)
 {
     //ФУНКЦИЯ: Выводит text, прикрепляя к старой строке, в RichTextBox и в файл, если эти действия разарешены
     string TEXT = text;
     if (tracer_defined && tracer_enabled)
     {
         //Трэйсер определён и разрешён
         if (tracer.InvokeRequired)
         {
             delegate_trace a_delegate = new delegate_trace(trace_attached);
             tracer.Invoke(a_delegate, text);
         }
         else
         {
             tracer.AppendText(TEXT);
             tracer.ScrollToCaret();
         }
     }
     if (tracer_log_enabled)
     {
         //Вывод в файл разрешён
         System.IO.File.AppendAllText("Log.txt", TEXT);
     }
 }
Ejemplo n.º 7
0
        void ISQLite3Provider.sqlite3_trace(IntPtr db, delegate_trace func, object v)
        {
            if (_trace_hook != null)
            {
                // TODO maybe turn off the hook here, for now
                _trace_hook.free();
                _trace_hook = null;
            }

            if (func != null)
            {
                _trace_hook = new trace_hook_info(func, v);
                NativeMethods.sqlite3_trace(db, trace_hook_bridge, _trace_hook.ptr);
            }
            else
            {
                NativeMethods.sqlite3_trace(db, null, IntPtr.Zero);
            }
        }
Ejemplo n.º 8
0
        void ISQLite3Provider.sqlite3_trace(IntPtr db, delegate_trace func, object v)
        {
		var info = hooks.getOrCreateFor(db);
            if (info.trace != null)
            {
                // TODO maybe turn off the hook here, for now
                info.trace.free();
                info.trace = null;
            }

            if (func != null)
            {
                info.trace = new trace_hook_info(func, v);
                SQLite3RuntimeProvider.sqlite3_trace(db.ToInt64(), Marshal.GetFunctionPointerForDelegate(trace_hook_bridge).ToInt64(), info.trace.ptr.ToInt64());
            }
            else
            {
                SQLite3RuntimeProvider.sqlite3_trace(db.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64());
            }
        }
Ejemplo n.º 9
0
        void ISQLite3Provider.sqlite3_trace(IntPtr db, delegate_trace func, object v)
        {
	    throw new Exception(GRIPE);
        }
Ejemplo n.º 10
0
 void trace(string text)
 {
     if (Log.InvokeRequired)
     {
         delegate_trace a_delegate = new delegate_trace(trace);
         Log.Invoke(a_delegate, text);
     }
     else
     {
         Log.AppendText(Environment.NewLine + "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + text);
         Log.ScrollToCaret();
     }
 }
Ejemplo n.º 11
0
        void ISQLite3Provider.sqlite3_trace(IntPtr db, delegate_trace func, object v)
        {
            if (_trace_hook != null)
            {
                // TODO maybe turn off the hook here, for now
                _trace_hook.free();
                _trace_hook = null;
            }

            if (func != null)
            {
                _trace_hook = new trace_hook_info(func, v);
                SQLite3RuntimeProvider.sqlite3_trace(db.ToInt64(), Marshal.GetFunctionPointerForDelegate(new callback_trace(trace_hook_bridge)).ToInt64(), _trace_hook.ptr.ToInt64());
            }
            else
            {
                SQLite3RuntimeProvider.sqlite3_trace(db.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64());
            }
        }