Ejemplo n.º 1
0
 private void setLastError(CurlShareCode code, CurlShareOption opt)
 {
     if ((LastErrorCode == CurlShareCode.Ok) && (code != CurlShareCode.Ok))
     {
         LastErrorCode        = code;
         LastErrorDescription = $"Error: {StrError(code)} setting option {opt}";
     }
 }
Ejemplo n.º 2
0
 private void setLastError(CurlShareCode code, CurlShareOption opt)
 {
     if (_lastErrorCode == CurlShareCode.Ok && code != CurlShareCode.Ok)
     {
         _lastErrorCode        = code;
         _lastErrorDescription = string.Format("Error: {0} setting option {1}", StrError(code), opt);
     }
 }
Ejemplo n.º 3
0
        private CurlShareCode setShareOption(CurlShareOption option, CurlLockData value)
        {
            var retCode = (value != CurlLockData.Cookie) && (value != CurlLockData.Dns)
                ? CurlShareCode.BadOption
                : NativeMethods.curl_share_setopt(_pShare, option, (IntPtr)value);

            setLastError(retCode, option);
            return(retCode);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Set options for this object.
        /// </summary>
        /// <param name="option">
        ///     One of the values in the <see cref="CurlShareOption" />
        ///     enumeration.
        /// </param>
        /// <param name="parameter">
        ///     An appropriate object based on the value passed in the
        ///     <c>option</c> argument. See <see cref="CurlShareOption" />
        ///     for more information about the appropriate parameter type.
        /// </param>
        /// <returns>
        ///     A <see cref="CurlShareCode" />, hopefully
        ///     <c>CurlShareCode.Ok</c>.
        /// </returns>
        /// <exception cref="System.NullReferenceException">
        ///     This is thrown if
        ///     the native <c>share</c> handle wasn't created successfully.
        /// </exception>
        public CurlShareCode SetOpt(CurlShareOption option, Object parameter)
        {
            EnsureHandle();
            var retCode = CurlShareCode.Ok;

            switch (option)
            {
            case CurlShareOption.LockFunction:
                var lf = parameter as CurlShareLockCallback;
                if (lf == null)
                {
                    return(CurlShareCode.BadOption);
                }
                _pfLock = lf;
                break;

            case CurlShareOption.UnlockFunction:
                var ulf = parameter as CurlShareUnlockCallback;
                if (ulf == null)
                {
                    return(CurlShareCode.BadOption);
                }
                _pfUnlock = ulf;
                break;

            case CurlShareOption.Share:
            case CurlShareOption.Unshare:
            {
                var opt = (CurlLockData)Convert.ToInt32(parameter);
                retCode = setShareOption(option, opt);
                break;
            }

            case CurlShareOption.UserData:
                _userData = parameter;
                break;

            default:
                retCode = CurlShareCode.BadOption;
                break;
            }
            return(retCode);
        }
Ejemplo n.º 5
0
 public static extern CurlShareCode curl_share_setopt(
     IntPtr pShare,
     CurlShareOption optCode,
     IntPtr option);
Ejemplo n.º 6
0
 internal static extern CurlShareCode curl_share_setopt(IntPtr pShare, CurlShareOption optCode, IntPtr option);
Ejemplo n.º 7
0
 private CurlShareCode setShareOption(CurlShareOption option, CurlLockData value)
 {
     var retCode = (value != CurlLockData.Cookie) && (value != CurlLockData.Dns)
         ? CurlShareCode.BadOption
         : NativeMethods.curl_share_setopt(_pShare, option, (IntPtr) value);
     setLastError(retCode, option);
     return retCode;
 }
Ejemplo n.º 8
0
 private void setLastError(CurlShareCode code, CurlShareOption opt)
 {
     if (_lastErrorCode == CurlShareCode.Ok && code != CurlShareCode.Ok)
     {
         _lastErrorCode = code;
         _lastErrorDescription = string.Format("Error: {0} setting option {1}", StrError(code), opt);
     }
 }
Ejemplo n.º 9
0
        /// <summary>
        ///     Set options for this object.
        /// </summary>
        /// <param name="option">
        ///     One of the values in the <see cref="CurlShareOption" />
        ///     enumeration.
        /// </param>
        /// <param name="parameter">
        ///     An appropriate object based on the value passed in the
        ///     <c>option</c> argument. See <see cref="CurlShareOption" />
        ///     for more information about the appropriate parameter type.
        /// </param>
        /// <returns>
        ///     A <see cref="CurlShareCode" />, hopefully
        ///     <c>CurlShareCode.Ok</c>.
        /// </returns>
        /// <exception cref="System.NullReferenceException">
        ///     This is thrown if
        ///     the native <c>share</c> handle wasn't created successfully.
        /// </exception>
        public CurlShareCode SetOpt(CurlShareOption option, Object parameter)
        {
            EnsureHandle();
            var retCode = CurlShareCode.Ok;

            switch (option)
            {
                case CurlShareOption.LockFunction:
                    var lf = parameter as CurlShareLockCallback;
                    if (lf == null)
                        return CurlShareCode.BadOption;
                    _pfLock = lf;
                    break;

                case CurlShareOption.UnlockFunction:
                    var ulf = parameter as CurlShareUnlockCallback;
                    if (ulf == null)
                        return CurlShareCode.BadOption;
                    _pfUnlock = ulf;
                    break;

                case CurlShareOption.Share:
                case CurlShareOption.Unshare:
                {
                    var opt = (CurlLockData) Convert.ToInt32(parameter);
                    retCode = setShareOption(option, opt);
                    break;
                }

                case CurlShareOption.UserData:
                    _userData = parameter;
                    break;

                default:
                    retCode = CurlShareCode.BadOption;
                    break;
            }
            return retCode;
        }
Ejemplo n.º 10
0
 internal static extern CurlShareCode ShareSetOpt(this ShareHandle handle, CurlShareOption option, UnlockFunctionCallback data);
Ejemplo n.º 11
0
 internal static extern CurlShareCode ShareSetOpt(this ShareHandle handle, CurlShareOption option, CurlLockData data);