public BerkeleyDtoResult OpenCursor([FromUri] ulong handle, [FromUri] String flags) { DbHandle db = GetDb(handle); BerkeleyDbCursorFlags cursorFlags = flags == null ? 0 : BerkeleyEnumParser.CursorFlags(flags); ulong cursorHandle = 0; IntPtr pdbc; BerkeleyDbError error = BDbcMethods.Create(BDbOffsetOfInstance.Instance, db.Handle, db.Methods.DbType, cursorFlags, out pdbc); if (error == 0) { DbcHandle dbc = new DbcHandle(pdbc, BDbcMethods.GetMethods(db.Methods.DbType)); cursorHandle = DbcInstance.AddDbc(dbc); if (cursorHandle == 0) { dbc.Methods.Close(dbc.Handle); throw new HttpResponseException(HttpStatusCode.InternalServerError); } } return(new BerkeleyDtoResult(error, cursorHandle.ToString())); }
public DbcHandle(IntPtr pdbc, BDbcMethods methods) { Handle = pdbc; Methods = methods; }