Network.Curl.Types

curl-1.3.8: Haskell binding to libcurl

Copyright | (c) Galois Inc 2007-2009
License | BSD3
Maintainer | Sigbjorn Finne <sof@galois.com>
Stability | provisional
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Network.Curl.Types

Description

Basic set of types for the Haskell curl binding, including the `Curl` handle type which holds the C library stateful connection handle along with a set of cleanup actions tht should be performed upon shutting down the curl session.

Synopsis

- type CurlH = Ptr Curl_
- type URLString = String
- type Port = Long
- type Long = Word32
- type LLong = Word64
- data Slist_
- data Curl
- curlPrim :: Curl -> (IORef OptionMap -> CurlH -> IO a) -> IO a
- mkCurl :: CurlH -> IO Curl
- mkCurlWithCleanup :: CurlH -> OptionMap -> IO Curl
- type OptionMap = IntMap (IO ())
- shareCleanup :: IORef OptionMap -> IO OptionMap
- runCleanup :: IORef OptionMap -> IO ()
- updateCleanup :: IORef OptionMap -> Int -> IO () -> IO ()

# Documentation

type CurlH = Ptr Curl_

type URLString = String

type Port = Long

type Long = Word32

type LLong = Word64

data Slist_

data Curl

curlPrim :: Curl -> (IORef OptionMap -> CurlH -> IO a) -> IO a

Execute a "primitve" curl operation. NOTE: See warnings about the use of `withForeginPtr`.

mkCurl :: CurlH -> IO Curl

Allocates a Haskell handle from a C handle.

mkCurlWithCleanup :: CurlH -> OptionMap -> IO Curl

Allocates a Haskell handle from a C handle.

type OptionMap = IntMap (IO ())

shareCleanup :: IORef OptionMap -> IO OptionMap

runCleanup :: IORef OptionMap -> IO ()

updateCleanup :: IORef OptionMap -> Int -> IO () -> IO ()