Exemplo n.º 1
0
        /// <summary>
        /// Sets engine field parameter value.
        /// </summary>
        /// <param name="field">Engine field.</param>
        /// <param name="value">Value to change.</param>
        public void SetField(EngineField field, object value)
        {
            ArgValidate.NotNull(value, nameof(value));
            ThrowIfCompiled();

            if (value is string || value is char)
            {
                var val = Marshal.StringToCoTaskMemAnsi(value.ToString());
                NativeMethods.cl_engine_set_str(_handle.Handle, field, val).ThrowIfError();
            }
            else
            {
                NativeMethods.cl_engine_set_num(_handle.Handle, field, Convert.ToInt16(value));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets engine field parameter value.
        /// </summary>
        /// <param name="field">Engine field.</param>
        /// <returns>Engine parameter value.</returns>
        public object GetField(EngineField field)
        {
            ThrowIfCompiled();

            object value;
            var    errorCode = (int)cl_error_t.CL_SUCCESS;

            if (field == EngineField.PuaCategories || field == EngineField.Keeptmp)
            {
                var data = NativeMethods.cl_engine_get_str(_handle.Handle, field, ref errorCode);
                errorCode.ThrowIfError();
                value = Marshal.PtrToStringAnsi(data);
            }
            else
            {
                value = NativeMethods.cl_engine_get_num(_handle.Handle, field, ref errorCode);
                errorCode.ThrowIfError();
            }

            return(value);
        }
Exemplo n.º 3
0
 public static extern IntPtr cl_engine_get_str(IntPtr engine, EngineField field, ref int err);
Exemplo n.º 4
0
 public static extern int cl_engine_set_str(IntPtr engine, EngineField field, IntPtr str);
Exemplo n.º 5
0
 public static extern long cl_engine_get_num(IntPtr engine, EngineField field, ref int err);
Exemplo n.º 6
0
 public static extern int cl_engine_set_num(IntPtr engine, EngineField field, long num);