Exemplo n.º 1
0
        protected override bool ReleaseHandle()
        {
            _deleteInstance(this.handle);

            //makes GC live easier
            _newInstance = null;
            _deleteInstance = null;
            return true;
        }
Exemplo n.º 2
0
        public DatabaseHandle(LibraryHandle libraryHandle)
            : base(true)
        {
            LibraryHandle = libraryHandle;
            _newInstance = libraryHandle.GetUnmanagedDelegate<NewInstanceDelegate>();
            _deleteInstance = libraryHandle.GetUnmanagedDelegate<DeleteInstanceDelegate>();

            this.handle = _newInstance(LibraryHandle);

            if (IsInvalid)
            {
                throw new EjdbException("Unable to create ejdb instance");
            }
        }
Exemplo n.º 3
0
        //Creates new instance of ejdb. Don't know what' is it, but it looks it should be done before opening database
        public unsafe DatabaseFunctions(LibraryHandle handle)
        {
            NewInstance    = handle.GetUnmanagedDelegate <NewInstanceDelegate>();
            DeleteInstance = handle.GetUnmanagedDelegate <DeleteInstanceDelegate>();

            OpenDatabase  = handle.GetUnmanagedDelegate <OpenDatabaseDelegate>();
            CloseDatabase = handle.GetUnmanagedDelegate <CloseDatabaseDelegate>();
            IsOpen        = handle.GetUnmanagedDelegate <IsOpenDelegate>();

            GetErrorCode = handle.GetUnmanagedDelegate <GetErrorCodeDelegate>();
            GetMetadata  = handle.GetUnmanagedDelegate <GetMetaDelegate>();


            Command = handle.GetUnmanagedDelegate <CommandDelegate>();
            Sync    = handle.GetUnmanagedDelegate <SyncDelegate>();
        }