{-# LINE 1 "src/System/Socket/Internal/Exception.hsc" #-}
{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
{-# LINE 2 "src/System/Socket/Internal/Exception.hsc" #-}
module System.Socket.Internal.Exception where

import Control.Exception
import Data.Typeable
import Foreign.C.Types


{-# LINE 9 "src/System/Socket/Internal/Exception.hsc" #-}

newtype SocketException
      = SocketException CInt
  deriving (Typeable, Eq)

instance Exception SocketException

instance Show SocketException where
  show e@(SocketException i)
    | e == eOK             = "eOK"
    | e == eINTR           = "eINTR"
    | e == eAGAIN          = "eAGAIN"
    | e == eWOULDBLOCK     = "eWOULDBLOCK"
    | e == eBADF           = "eBADF"
    | e == eINPROGRESS     = "eINPROGRESS"
    | e == ePROTONOSUPPORT = "ePROTONOSUPPORT"
    | e == eINVAL          = "eINVAL"
    | e == eCONNREFUSED    = "eCONNREFUSED"
    | otherwise            = "SocketException " ++ show i

eOK         :: SocketException
eOK          = SocketException (0)
{-# LINE 31 "src/System/Socket/Internal/Exception.hsc" #-}

eINTR       :: SocketException
eINTR        = SocketException (4)
{-# LINE 34 "src/System/Socket/Internal/Exception.hsc" #-}

eAGAIN      :: SocketException
eAGAIN       = SocketException (11)
{-# LINE 37 "src/System/Socket/Internal/Exception.hsc" #-}

eWOULDBLOCK :: SocketException
eWOULDBLOCK  = SocketException (11)
{-# LINE 40 "src/System/Socket/Internal/Exception.hsc" #-}

eBADF       :: SocketException
eBADF        = SocketException (9)
{-# LINE 43 "src/System/Socket/Internal/Exception.hsc" #-}

eINPROGRESS :: SocketException
eINPROGRESS  = SocketException (115)
{-# LINE 46 "src/System/Socket/Internal/Exception.hsc" #-}

ePROTONOSUPPORT :: SocketException
ePROTONOSUPPORT  = SocketException (93)
{-# LINE 49 "src/System/Socket/Internal/Exception.hsc" #-}

eINVAL          :: SocketException
eINVAL           = SocketException (22)
{-# LINE 52 "src/System/Socket/Internal/Exception.hsc" #-}

eCONNREFUSED    :: SocketException
eCONNREFUSED     = SocketException (111)
{-# LINE 55 "src/System/Socket/Internal/Exception.hsc" #-}