internal trace_hook_info(delegate_trace func, object v) { _func = func; _user_data = v; _h = GCHandle.Alloc(this); }
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(); } }
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()); } }
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); } }
public static void trace(this sqlite3 db, delegate_trace f, object v) { raw.sqlite3_trace(db, f, v); }
internal void free() { _func = null; _user_data = null; _h.Free(); }
/// <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); } }
public void sqlite3_trace(IntPtr db, delegate_trace func, object v) => throw new NotImplementedException();
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); } }
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()); } }
void ISQLite3Provider.sqlite3_trace(IntPtr db, delegate_trace func, object v) { throw new Exception(GRIPE); }
public trace_hook_info(delegate_trace func, object v) { _func = func; _user_data = v; }
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); } }