bingo/sqlserver/Source/BingoCoreLib.cs (185 lines of code) (raw):

using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace indigo { public unsafe interface BingoCoreLib { String bingoGetVersion (); String bingoGetError (); String bingoGetWarning (); int bingoSetContext (int id); int bingoSetConfigInt ( [MarshalAs(UnmanagedType.LPStr)] string name, int value); int bingoGetConfigInt ( [MarshalAs(UnmanagedType.LPStr)] string name, out int value); int bingoSetConfigBin ( [MarshalAs(UnmanagedType.LPStr)] string name, [MarshalAs(UnmanagedType.LPArray)] byte[] value, int len); int bingoGetConfigBin ( [MarshalAs(UnmanagedType.LPStr)] string name, out IntPtr value, out int len); int bingoClearTautomerRules (); int bingoAddTautomerRule (int n, [MarshalAs(UnmanagedType.LPStr)] string beg, [MarshalAs(UnmanagedType.LPStr)] string end); int bingoTautomerRulesReady (); int mangoSetupMatch ( [MarshalAs(UnmanagedType.LPStr)] string search_type, [MarshalAs(UnmanagedType.LPStr)] string query, [MarshalAs(UnmanagedType.LPStr)] string options); int ringoSetupMatch ( [MarshalAs(UnmanagedType.LPStr)] string search_type, [MarshalAs(UnmanagedType.LPStr)] string query, [MarshalAs(UnmanagedType.LPStr)] string options); int mangoMatchTarget ( [MarshalAs(UnmanagedType.LPArray)] byte[] target, int target_buf_len); int mangoMatchTargetBinary ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_cmf, int target_cmf_len, [MarshalAs(UnmanagedType.LPArray)] byte[] target_xyz, int target_xyz_len); int ringoMatchTarget ( [MarshalAs(UnmanagedType.LPArray)] byte[] target, int target_buf_len); int ringoMatchTargetBinary ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_cmf, int target_cmf_len); int bingoSDFImportOpen ( [MarshalAs(UnmanagedType.LPStr)] string filename); int bingoSDFImportClose (); int bingoSDFImportEOF (); sbyte* bingoSDFImportGetNext (); sbyte* bingoSDFImportGetProperty ( [MarshalAs(UnmanagedType.LPStr)] string param_name); int bingoRDFImportOpen ( [MarshalAs(UnmanagedType.LPStr)] string filename); int bingoRDFImportClose (); int bingoRDFImportEOF (); sbyte* bingoRDFImportGetNext (); sbyte* bingoRDFImportGetProperty ( [MarshalAs(UnmanagedType.LPStr)] string param_name); /* Indexing */ int bingoIndexBegin (); int bingoIndexEnd (); int bingoIndexMarkTermintate (); int bingoSetIndexRecordData (int id, byte[] data, int data_size); int bingoIndexProcess ( [MarshalAs(UnmanagedType.I1)] bool is_reaction, BingoCore.GetNextRecordHandler get_next_record, BingoCore.ProcessResultHandler process_result, BingoCore.ProcessErrorHandler process_error, IntPtr context); int mangoIndexReadPreparedMolecule ( out int id, out IntPtr cmf_buf, out int cmf_buf_len, out IntPtr xyz_buf, out int xyz_buf_len, out IntPtr gross_str, out IntPtr counter_elements_str, out IntPtr fingerprint_buf, out int fingerprint_buf_len, out IntPtr fingerprint_sim_str, out float mass, out int sim_fp_bits_count); int ringoIndexReadPreparedReaction ( out int id, out IntPtr crf_buf, out int crf_buf_len, out IntPtr fingerprint_buf, out int fingerprint_buf_len); int bingoIndexSetSkipFP ([MarshalAs(UnmanagedType.I1)] bool skip); int mangoGetHash ( [MarshalAs(UnmanagedType.I1)] bool for_index, int index, out int count, out int hash); int mangoGetQueryFingerprint (out IntPtr query_fp, out int query_fp_len); int ringoGetQueryFingerprint (out IntPtr query_fp, out int query_fp_len); int mangoGetAtomCount ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_buf, int target_buf_len); int mangoGetBondCount ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_buf, int target_buf_len); sbyte* mangoSMILES ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_buf, int target_buf_len, int canonical); sbyte* ringoRSMILES ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_buf, int target_buf_len); sbyte* mangoMolfile ( [MarshalAs(UnmanagedType.LPArray)] byte[] molecule, int molecule_len); sbyte* mangoCML ( [MarshalAs(UnmanagedType.LPArray)] byte[] molecule, int molecule_len); IntPtr mangoICM ( [MarshalAs(UnmanagedType.LPArray)] byte[] molecule, int molecule_len, [MarshalAs(UnmanagedType.I1)] bool save_xyz, out int out_len); IntPtr ringoICR ( [MarshalAs(UnmanagedType.LPArray)] byte[] reaction, int reaction_len, [MarshalAs(UnmanagedType.I1)] bool save_xyz, out int out_len); sbyte* ringoRxnfile ( [MarshalAs(UnmanagedType.LPArray)] byte[] reaction, int reaction_len); sbyte* ringoRCML ( [MarshalAs(UnmanagedType.LPArray)] byte[] reaction, int reaction_len); IntPtr mangoFingerprint( [MarshalAs(UnmanagedType.LPArray)] byte[] molecule, int molecule_len, [MarshalAs(UnmanagedType.LPStr)] string options, out int out_len); IntPtr ringoFingerprint( [MarshalAs(UnmanagedType.LPArray)] byte[] molecule, int molecule_len, [MarshalAs(UnmanagedType.LPStr)] string options, out int out_len); sbyte* mangoInChI( [MarshalAs(UnmanagedType.LPArray)] byte[] molecule, int molecule_len, [MarshalAs(UnmanagedType.LPStr)] string options, out int out_len); sbyte* mangoInChIKey([MarshalAs(UnmanagedType.LPStr)] string inchi); sbyte* mangoGetCountedElementName(int index); int mangoNeedCoords (); [return: MarshalAs(UnmanagedType.I1)] bool mangoExactNeedComponentMatching (); sbyte* mangoTauGetQueryGross (); int mangoSimilarityGetBitMinMaxBoundsArray ( int count, [MarshalAs(UnmanagedType.LPArray)] int[] target_ones, out IntPtr min_bound, out IntPtr max_bound); int mangoSimilaritySetMinMaxBounds ( float min_bound, float max_bound); int mangoSimilarityGetScore (out Single score); int mangoSetHightlightingMode (int enable); int mangoLoadTargetBinaryXyz ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_xyz, int target_xyz_len); sbyte* mangoGetHightlightedMolecule (); int ringoSetHightlightingMode (int enable); sbyte* ringoGetHightlightedReaction (); sbyte* ringoAAM ( [MarshalAs(UnmanagedType.LPArray)] byte[] reaction, int reaction_len, [MarshalAs(UnmanagedType.LPStr)] string options); sbyte* ringoCheckReaction ( [MarshalAs(UnmanagedType.LPArray)] byte[] reaction, int reaction_len); sbyte* mangoCheckMolecule ( [MarshalAs(UnmanagedType.LPArray)] byte[] molecule, int molecule_len); sbyte* mangoGross ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_buf, int target_buf_len); int mangoMass ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_buf, int target_buf_len, [MarshalAs(UnmanagedType.LPStr)] string type, out float mass); sbyte* mangoGrossGetConditions (); int ringoGetHash ([MarshalAs(UnmanagedType.I1)] bool for_index, out int hash); /* Profiling */ void bingoProfilingReset ( [MarshalAs(UnmanagedType.I1)] bool reset_whole_session); sbyte* bingoProfilingGetStatistics ([MarshalAs(UnmanagedType.I1)] bool for_session); float bingoProfilingGetTime ( [MarshalAs(UnmanagedType.LPStr)] string counter_name, [MarshalAs(UnmanagedType.I1)] bool whole_session); long bingoProfilingGetValue ( [MarshalAs(UnmanagedType.LPStr)] string counter_name, [MarshalAs(UnmanagedType.I1)] bool whole_session); long bingoProfilingGetCount ( [MarshalAs(UnmanagedType.LPStr)] string counter_name, [MarshalAs(UnmanagedType.I1)] bool whole_session); UInt64 bingoProfNanoClock (); void bingoProfIncTimer ( [MarshalAs(UnmanagedType.LPStr)] string target_buf, UInt64 dt); void bingoProfIncCounter ( [MarshalAs(UnmanagedType.LPStr)] string target_buf, int value); sbyte* bingoGetNameCore ( [MarshalAs(UnmanagedType.LPArray)] byte[] target_buf, int target_buf_len); int bingoSMILESImportOpen ( [MarshalAs(UnmanagedType.LPStr)] string file_name); int bingoSMILESImportClose (); int bingoSMILESImportEOF (); String bingoSMILESImportGetNext (); /* Test functions */ int bingoCheckMemoryAllocate (int mem); int bingoCheckMemoryFree (); /* Session managing */ [return: MarshalAs(UnmanagedType.U8)] ulong bingoAllocateSessionID (); void bingoReleaseSessionID ([MarshalAs(UnmanagedType.U8)] ulong id); void bingoSetSessionID ([MarshalAs(UnmanagedType.U8)] ulong id); [return: MarshalAs(UnmanagedType.U8)] ulong bingoGetSessionID (); } }