# CurlShare Object

class pycurl.CurlShare

  Creates a new CurlShare Object which corresponds to a `CURLSH` handle in libcurl. CurlShare objects is what you pass as an argument to the SHARE option on Curl objects.

  CurlShare objects have the following methods:

  close() → None

    Close shared handle.

    Corresponds to curl_share_cleanup in libcurl. This method is automatically called by pycurl when a CurlShare object no longer has any references to it, but can also be called explicitly.

  setopt(option, value) → None

    Set curl share option.

    Corresponds to curl_share_setopt in libcurl, where option is specified with the `CURLSHOPT_*` constants in libcurl, except that the `CURLSHOPT_` prefix has been changed to `SH_`. Currently, value must be one of: `LOCK_DATA_COOKIE`, `LOCK_DATA_DNS`, `LOCK_DATA_SSL_SESSION` or `LOCK_DATA_CONNECT`.

    Example usage:

        import pycurl
        curl = pycurl.Curl()
        s = pycurl.CurlShare()
        s.setopt(pycurl.SH_SHARE, pycurl.LOCK_DATA_COOKIE)
        s.setopt(pycurl.SH_SHARE, pycurl.LOCK_DATA_DNS)
        curl.setopt(pycurl.URL, 'https://curl.haxx.se')
        curl.setopt(pycurl.SHARE, s)
        curl.perform()
        curl.close()

    Raises pycurl.error exception upon failure.