public static void OnUnlock(CURLlockData data, Object extraData) { //Console.WriteLine("OnUnlock({0})", data); if (data == CURLlockData.CURL_LOCK_DATA_DNS) { Monitor.Exit(dnsLock); } else if (data == CURLlockData.CURL_LOCK_DATA_COOKIE) { Monitor.Exit(cookieLock); } }
public static void OnLock(CURLlockData data, CURLlockAccess access, Object extraData) { //Console.WriteLine("OnLock({0}, {1})", data, access); if (data == CURLlockData.CURL_LOCK_DATA_DNS) { Monitor.Enter(dnsLock); } else if (data == CURLlockData.CURL_LOCK_DATA_COOKIE) { Monitor.Enter(cookieLock); } }
/// <summary> /// Set options for this object. /// </summary> /// <param name="option"> /// One of the values in the <see cref="CURLSHoption"/> /// enumeration. /// </param> /// <param name="parameter"> /// An appropriate object based on the value passed in the /// <c>option</c> argument. See <see cref="CURLSHoption"/> /// for more information about the appropriate parameter type. /// </param> /// <returns> /// A <see cref="CURLSHcode"/>, hopefully /// <c>CURLSHcode.CURLSHE_OK</c>. /// </returns> /// <exception cref="System.NullReferenceException">This is thrown if /// the native <c>share</c> handle wasn't created successfully.</exception> public CURLSHcode SetOpt(CURLSHoption option, Object parameter) { EnsureHandle(); CURLSHcode retCode = CURLSHcode.CURLSHE_OK; switch (option) { case CURLSHoption.CURLSHOPT_LOCKFUNC: LockFunction lf = parameter as LockFunction; if (lf == null) { return(CURLSHcode.CURLSHE_BAD_OPTION); } m_pfLock = lf; break; case CURLSHoption.CURLSHOPT_UNLOCKFUNC: UnlockFunction ulf = parameter as UnlockFunction; if (ulf == null) { return(CURLSHcode.CURLSHE_BAD_OPTION); } m_pfUnlock = ulf; break; case CURLSHoption.CURLSHOPT_SHARE: case CURLSHoption.CURLSHOPT_UNSHARE: { CURLlockData opt = (CURLlockData) Convert.ToInt32(parameter); if ((opt != CURLlockData.CURL_LOCK_DATA_COOKIE) && (opt != CURLlockData.CURL_LOCK_DATA_DNS)) { return(CURLSHcode.CURLSHE_BAD_OPTION); } retCode = External.curl_share_setopt(m_pShare, option, (IntPtr)opt); break; } case CURLSHoption.CURLSHOPT_USERDATA: m_userData = parameter; break; default: retCode = CURLSHcode.CURLSHE_BAD_OPTION; break; } return(retCode); }
public static void OnLock(CURLlockData data, CURLlockAccess access, Object extraData) { //Console.WriteLine("OnLock({0}, {1})", data, access); if (data == CURLlockData.CURL_LOCK_DATA_DNS) Monitor.Enter(dnsLock); else if (data == CURLlockData.CURL_LOCK_DATA_COOKIE) Monitor.Enter(cookieLock); }
public static void OnUnlock(CURLlockData data, Object extraData) { //Console.WriteLine("OnUnlock({0})", data); if (data == CURLlockData.CURL_LOCK_DATA_DNS) Monitor.Exit(dnsLock); else if (data == CURLlockData.CURL_LOCK_DATA_COOKIE) Monitor.Exit(cookieLock); }