private int xCreate(int argc, ref IntPtr argv, ref IntPtr ppTokenizer) { try { sqlite3_tokenizer pTokenizer = new sqlite3_tokenizer(); this.ppTokenizer = this.MarshalStruct(pTokenizer); ppTokenizer = this.ppTokenizer; string tokenizerArgument = null; if (argc > 0) { tokenizerArgument = SQLiteConvert.UTF8ToString(argv, -1); } owner.OnCreate(tokenizerArgument); return(SQLITE_OK); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(SQLITE_ERROR); } }
private int xOpen(ref sqlite3_tokenizer pTokenizer, IntPtr pInput, int nBytes, ref IntPtr ppCursor) { try { sqlite3_tokenizer_cursor pCursor = new sqlite3_tokenizer_cursor(); pCursor.pTokenizer = this.ppTokenizer; this.ppCursor = this.MarshalStruct(pCursor); ppCursor = this.ppCursor; owner.inputString = SQLiteConvert.UTF8ToString(pInput, nBytes); owner.tokenNumber = -1; owner.PrepareToStart(); return(SQLITE_OK); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(SQLITE_ERROR); } }
private int xDestroy(ref sqlite3_tokenizer pTokenizer) { owner.OnDestroy(); Marshal.FreeHGlobal(this.ppTokenizer); return(SQLITE_OK); }