コード例 #1
0
        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));
        }
コード例 #2
0
        private static DbcHandle GetDbc(ulong handle)
        {
            DbcHandle dbc = DbcInstance.GetDbc(handle);

            if (dbc.Handle == IntPtr.Zero)
            {
                throw new HttpResponseException((HttpStatusCode)422);
            }

            return(dbc);
        }
コード例 #3
0
        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()));
        }