public BerkeleyDbError Close([FromUri] ulong handle) { DbcHandle dbc = DbcInstance.RemoveDbc(handle); if (dbc.Handle == IntPtr.Zero) { throw new HttpResponseException((HttpStatusCode)422); } return(dbc.Methods.Close(dbc.Handle)); }
private static DbcHandle GetDbc(ulong handle) { DbcHandle dbc = DbcInstance.GetDbc(handle); if (dbc.Handle == IntPtr.Zero) { throw new HttpResponseException((HttpStatusCode)422); } return(dbc); }
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())); }