bingo/sqlserver/Source/RingoIndex.cs (29 lines of code) (raw):
using System;
using System.Runtime.InteropServices;
namespace indigo
{
public class RingoIndex
{
public float mass;
public byte[] crf;
public byte[] fingerprint;
public int hash;
public bool readPrepared (out int id)
{
IntPtr crf_ptr, fingerprint_ptr;
int crf_buf_len, fingerprint_buf_len;
int ret = BingoCore.lib.ringoIndexReadPreparedReaction(out id,
out crf_ptr, out crf_buf_len, out fingerprint_ptr, out fingerprint_buf_len);
BingoCore.lib.ringoGetHash(true, out hash);
if (ret == -2)
throw new Exception(BingoCore.lib.bingoGetError());
if (ret == -1)
return false;
crf = new byte[crf_buf_len];
fingerprint = new byte[fingerprint_buf_len];
Marshal.Copy(crf_ptr, crf, 0, crf_buf_len);
Marshal.Copy(fingerprint_ptr, fingerprint, 0, fingerprint_buf_len);
return true;
}
}
}