cl_load() private method

private cl_load ( string path, IntPtr engine, uint &signo, uint dboptions ) : int
path string
engine IntPtr
signo uint
dboptions uint
return int
Exemplo n.º 1
0
        /// <summary>
        /// Loads a database file or directory into the engine.
        /// </summary>
        /// <param name="path">Path to the database file or a directory containing database files.</param>
        /// <param name="options">Options with which to load the database.</param>
        public void LoadDatabase(string path, LoadOptions options)
        {
            // Validate arguments.
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentNullException(nameof(path));
            }

            uint signo  = 0;
            uint optnum = 0;

            // Convert LoadOptions parameter.
            optnum = (uint)options;

            // Invoke the native method to load the database.
            var loadResult = (UnsafeNativeMethods.cl_error_t)UnsafeNativeMethods.cl_load(path, _engine, ref signo, optnum);

            if (loadResult != UnsafeNativeMethods.cl_error_t.CL_SUCCESS)
            {
                throw new ClamException((int)loadResult, ErrorString((int)loadResult));
            }

            // Compile the database.
            var compileResult = (UnsafeNativeMethods.cl_error_t)UnsafeNativeMethods.cl_engine_compile(_engine);

            if (compileResult != UnsafeNativeMethods.cl_error_t.CL_SUCCESS)
            {
                throw new ClamException((int)compileResult, ErrorString((int)compileResult));
            }
        }