packages feed

gi-gio-0.2.46.13: GI/Gio/Objects/InetAddressMask.hs


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gio.Objects.InetAddressMask
    ( 

-- * Exported types
    InetAddressMask(..)                     ,
    InetAddressMaskK                        ,
    toInetAddressMask                       ,
    noInetAddressMask                       ,


 -- * Methods
-- ** inetAddressMaskEqual
    InetAddressMaskEqualMethodInfo          ,
    inetAddressMaskEqual                    ,


-- ** inetAddressMaskGetAddress
    InetAddressMaskGetAddressMethodInfo     ,
    inetAddressMaskGetAddress               ,


-- ** inetAddressMaskGetFamily
    InetAddressMaskGetFamilyMethodInfo      ,
    inetAddressMaskGetFamily                ,


-- ** inetAddressMaskGetLength
    InetAddressMaskGetLengthMethodInfo      ,
    inetAddressMaskGetLength                ,


-- ** inetAddressMaskMatches
    InetAddressMaskMatchesMethodInfo        ,
    inetAddressMaskMatches                  ,


-- ** inetAddressMaskNew
    inetAddressMaskNew                      ,


-- ** inetAddressMaskNewFromString
    inetAddressMaskNewFromString            ,


-- ** inetAddressMaskToString
    InetAddressMaskToStringMethodInfo       ,
    inetAddressMaskToString                 ,




 -- * Properties
-- ** Address
    InetAddressMaskAddressPropertyInfo      ,
    constructInetAddressMaskAddress         ,
    getInetAddressMaskAddress               ,
    setInetAddressMaskAddress               ,


-- ** Family
    InetAddressMaskFamilyPropertyInfo       ,
    getInetAddressMaskFamily                ,


-- ** Length
    InetAddressMaskLengthPropertyInfo       ,
    constructInetAddressMaskLength          ,
    getInetAddressMaskLength                ,
    setInetAddressMaskLength                ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GObject as GObject

newtype InetAddressMask = InetAddressMask (ForeignPtr InetAddressMask)
foreign import ccall "g_inet_address_mask_get_type"
    c_g_inet_address_mask_get_type :: IO GType

type instance ParentTypes InetAddressMask = InetAddressMaskParentTypes
type InetAddressMaskParentTypes = '[GObject.Object, Initable]

instance GObject InetAddressMask where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_inet_address_mask_get_type
    

class GObject o => InetAddressMaskK o
instance (GObject o, IsDescendantOf InetAddressMask o) => InetAddressMaskK o

toInetAddressMask :: InetAddressMaskK o => o -> IO InetAddressMask
toInetAddressMask = unsafeCastTo InetAddressMask

noInetAddressMask :: Maybe InetAddressMask
noInetAddressMask = Nothing

type family ResolveInetAddressMaskMethod (t :: Symbol) (o :: *) :: * where
    ResolveInetAddressMaskMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveInetAddressMaskMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveInetAddressMaskMethod "equal" o = InetAddressMaskEqualMethodInfo
    ResolveInetAddressMaskMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveInetAddressMaskMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveInetAddressMaskMethod "init" o = InitableInitMethodInfo
    ResolveInetAddressMaskMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveInetAddressMaskMethod "matches" o = InetAddressMaskMatchesMethodInfo
    ResolveInetAddressMaskMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveInetAddressMaskMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveInetAddressMaskMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveInetAddressMaskMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveInetAddressMaskMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveInetAddressMaskMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveInetAddressMaskMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveInetAddressMaskMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveInetAddressMaskMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveInetAddressMaskMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveInetAddressMaskMethod "toString" o = InetAddressMaskToStringMethodInfo
    ResolveInetAddressMaskMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveInetAddressMaskMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveInetAddressMaskMethod "getAddress" o = InetAddressMaskGetAddressMethodInfo
    ResolveInetAddressMaskMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveInetAddressMaskMethod "getFamily" o = InetAddressMaskGetFamilyMethodInfo
    ResolveInetAddressMaskMethod "getLength" o = InetAddressMaskGetLengthMethodInfo
    ResolveInetAddressMaskMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveInetAddressMaskMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveInetAddressMaskMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveInetAddressMaskMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveInetAddressMaskMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveInetAddressMaskMethod t InetAddressMask, MethodInfo info InetAddressMask p) => IsLabelProxy t (InetAddressMask -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveInetAddressMaskMethod t InetAddressMask, MethodInfo info InetAddressMask p) => IsLabel t (InetAddressMask -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- VVV Prop "address"
   -- Type: TInterface "Gio" "InetAddress"
   -- Flags: [PropertyReadable,PropertyWritable]

getInetAddressMaskAddress :: (MonadIO m, InetAddressMaskK o) => o -> m InetAddress
getInetAddressMaskAddress obj = liftIO $ getObjectPropertyObject obj "address" InetAddress

setInetAddressMaskAddress :: (MonadIO m, InetAddressMaskK o, InetAddressK a) => o -> a -> m ()
setInetAddressMaskAddress obj val = liftIO $ setObjectPropertyObject obj "address" val

constructInetAddressMaskAddress :: (InetAddressK a) => a -> IO ([Char], GValue)
constructInetAddressMaskAddress val = constructObjectPropertyObject "address" val

data InetAddressMaskAddressPropertyInfo
instance AttrInfo InetAddressMaskAddressPropertyInfo where
    type AttrAllowedOps InetAddressMaskAddressPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint InetAddressMaskAddressPropertyInfo = InetAddressK
    type AttrBaseTypeConstraint InetAddressMaskAddressPropertyInfo = InetAddressMaskK
    type AttrGetType InetAddressMaskAddressPropertyInfo = InetAddress
    type AttrLabel InetAddressMaskAddressPropertyInfo = "address"
    attrGet _ = getInetAddressMaskAddress
    attrSet _ = setInetAddressMaskAddress
    attrConstruct _ = constructInetAddressMaskAddress

-- VVV Prop "family"
   -- Type: TInterface "Gio" "SocketFamily"
   -- Flags: [PropertyReadable]

getInetAddressMaskFamily :: (MonadIO m, InetAddressMaskK o) => o -> m SocketFamily
getInetAddressMaskFamily obj = liftIO $ getObjectPropertyEnum obj "family"

data InetAddressMaskFamilyPropertyInfo
instance AttrInfo InetAddressMaskFamilyPropertyInfo where
    type AttrAllowedOps InetAddressMaskFamilyPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint InetAddressMaskFamilyPropertyInfo = (~) ()
    type AttrBaseTypeConstraint InetAddressMaskFamilyPropertyInfo = InetAddressMaskK
    type AttrGetType InetAddressMaskFamilyPropertyInfo = SocketFamily
    type AttrLabel InetAddressMaskFamilyPropertyInfo = "family"
    attrGet _ = getInetAddressMaskFamily
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "length"
   -- Type: TBasicType TUInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getInetAddressMaskLength :: (MonadIO m, InetAddressMaskK o) => o -> m Word32
getInetAddressMaskLength obj = liftIO $ getObjectPropertyCUInt obj "length"

setInetAddressMaskLength :: (MonadIO m, InetAddressMaskK o) => o -> Word32 -> m ()
setInetAddressMaskLength obj val = liftIO $ setObjectPropertyCUInt obj "length" val

constructInetAddressMaskLength :: Word32 -> IO ([Char], GValue)
constructInetAddressMaskLength val = constructObjectPropertyCUInt "length" val

data InetAddressMaskLengthPropertyInfo
instance AttrInfo InetAddressMaskLengthPropertyInfo where
    type AttrAllowedOps InetAddressMaskLengthPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint InetAddressMaskLengthPropertyInfo = (~) Word32
    type AttrBaseTypeConstraint InetAddressMaskLengthPropertyInfo = InetAddressMaskK
    type AttrGetType InetAddressMaskLengthPropertyInfo = Word32
    type AttrLabel InetAddressMaskLengthPropertyInfo = "length"
    attrGet _ = getInetAddressMaskLength
    attrSet _ = setInetAddressMaskLength
    attrConstruct _ = constructInetAddressMaskLength

type instance AttributeList InetAddressMask = InetAddressMaskAttributeList
type InetAddressMaskAttributeList = ('[ '("address", InetAddressMaskAddressPropertyInfo), '("family", InetAddressMaskFamilyPropertyInfo), '("length", InetAddressMaskLengthPropertyInfo)] :: [(Symbol, *)])

type instance SignalList InetAddressMask = InetAddressMaskSignalList
type InetAddressMaskSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method InetAddressMask::new
-- method type : Constructor
-- Args : [Arg {argCName = "addr", argType = TInterface "Gio" "InetAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "InetAddressMask"
-- throws : True
-- Skip return : False

foreign import ccall "g_inet_address_mask_new" g_inet_address_mask_new :: 
    Ptr InetAddress ->                      -- addr : TInterface "Gio" "InetAddress"
    Word32 ->                               -- length : TBasicType TUInt32
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr InetAddressMask)


inetAddressMaskNew ::
    (MonadIO m, InetAddressK a) =>
    a                                       -- addr
    -> Word32                               -- length_
    -> m InetAddressMask                    -- result
inetAddressMaskNew addr length_ = liftIO $ do
    let addr' = unsafeManagedPtrCastPtr addr
    onException (do
        result <- propagateGError $ g_inet_address_mask_new addr' length_
        checkUnexpectedReturnNULL "g_inet_address_mask_new" result
        result' <- (wrapObject InetAddressMask) result
        touchManagedPtr addr
        return result'
     ) (do
        return ()
     )

-- method InetAddressMask::new_from_string
-- method type : Constructor
-- Args : [Arg {argCName = "mask_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "InetAddressMask"
-- throws : True
-- Skip return : False

foreign import ccall "g_inet_address_mask_new_from_string" g_inet_address_mask_new_from_string :: 
    CString ->                              -- mask_string : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr InetAddressMask)


inetAddressMaskNewFromString ::
    (MonadIO m) =>
    T.Text                                  -- maskString
    -> m InetAddressMask                    -- result
inetAddressMaskNewFromString maskString = liftIO $ do
    maskString' <- textToCString maskString
    onException (do
        result <- propagateGError $ g_inet_address_mask_new_from_string maskString'
        checkUnexpectedReturnNULL "g_inet_address_mask_new_from_string" result
        result' <- (wrapObject InetAddressMask) result
        freeMem maskString'
        return result'
     ) (do
        freeMem maskString'
     )

-- method InetAddressMask::equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "InetAddressMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask2", argType = TInterface "Gio" "InetAddressMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "g_inet_address_mask_equal" g_inet_address_mask_equal :: 
    Ptr InetAddressMask ->                  -- _obj : TInterface "Gio" "InetAddressMask"
    Ptr InetAddressMask ->                  -- mask2 : TInterface "Gio" "InetAddressMask"
    IO CInt


inetAddressMaskEqual ::
    (MonadIO m, InetAddressMaskK a, InetAddressMaskK b) =>
    a                                       -- _obj
    -> b                                    -- mask2
    -> m Bool                               -- result
inetAddressMaskEqual _obj mask2 = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let mask2' = unsafeManagedPtrCastPtr mask2
    result <- g_inet_address_mask_equal _obj' mask2'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr mask2
    return result'

data InetAddressMaskEqualMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, InetAddressMaskK a, InetAddressMaskK b) => MethodInfo InetAddressMaskEqualMethodInfo a signature where
    overloadedMethod _ = inetAddressMaskEqual

-- method InetAddressMask::get_address
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "InetAddressMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "InetAddress"
-- throws : False
-- Skip return : False

foreign import ccall "g_inet_address_mask_get_address" g_inet_address_mask_get_address :: 
    Ptr InetAddressMask ->                  -- _obj : TInterface "Gio" "InetAddressMask"
    IO (Ptr InetAddress)


inetAddressMaskGetAddress ::
    (MonadIO m, InetAddressMaskK a) =>
    a                                       -- _obj
    -> m InetAddress                        -- result
inetAddressMaskGetAddress _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_inet_address_mask_get_address _obj'
    checkUnexpectedReturnNULL "g_inet_address_mask_get_address" result
    result' <- (newObject InetAddress) result
    touchManagedPtr _obj
    return result'

data InetAddressMaskGetAddressMethodInfo
instance (signature ~ (m InetAddress), MonadIO m, InetAddressMaskK a) => MethodInfo InetAddressMaskGetAddressMethodInfo a signature where
    overloadedMethod _ = inetAddressMaskGetAddress

-- method InetAddressMask::get_family
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "InetAddressMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "SocketFamily"
-- throws : False
-- Skip return : False

foreign import ccall "g_inet_address_mask_get_family" g_inet_address_mask_get_family :: 
    Ptr InetAddressMask ->                  -- _obj : TInterface "Gio" "InetAddressMask"
    IO CUInt


inetAddressMaskGetFamily ::
    (MonadIO m, InetAddressMaskK a) =>
    a                                       -- _obj
    -> m SocketFamily                       -- result
inetAddressMaskGetFamily _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_inet_address_mask_get_family _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

data InetAddressMaskGetFamilyMethodInfo
instance (signature ~ (m SocketFamily), MonadIO m, InetAddressMaskK a) => MethodInfo InetAddressMaskGetFamilyMethodInfo a signature where
    overloadedMethod _ = inetAddressMaskGetFamily

-- method InetAddressMask::get_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "InetAddressMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False

foreign import ccall "g_inet_address_mask_get_length" g_inet_address_mask_get_length :: 
    Ptr InetAddressMask ->                  -- _obj : TInterface "Gio" "InetAddressMask"
    IO Word32


inetAddressMaskGetLength ::
    (MonadIO m, InetAddressMaskK a) =>
    a                                       -- _obj
    -> m Word32                             -- result
inetAddressMaskGetLength _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_inet_address_mask_get_length _obj'
    touchManagedPtr _obj
    return result

data InetAddressMaskGetLengthMethodInfo
instance (signature ~ (m Word32), MonadIO m, InetAddressMaskK a) => MethodInfo InetAddressMaskGetLengthMethodInfo a signature where
    overloadedMethod _ = inetAddressMaskGetLength

-- method InetAddressMask::matches
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "InetAddressMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "address", argType = TInterface "Gio" "InetAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "g_inet_address_mask_matches" g_inet_address_mask_matches :: 
    Ptr InetAddressMask ->                  -- _obj : TInterface "Gio" "InetAddressMask"
    Ptr InetAddress ->                      -- address : TInterface "Gio" "InetAddress"
    IO CInt


inetAddressMaskMatches ::
    (MonadIO m, InetAddressMaskK a, InetAddressK b) =>
    a                                       -- _obj
    -> b                                    -- address
    -> m Bool                               -- result
inetAddressMaskMatches _obj address = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let address' = unsafeManagedPtrCastPtr address
    result <- g_inet_address_mask_matches _obj' address'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr address
    return result'

data InetAddressMaskMatchesMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, InetAddressMaskK a, InetAddressK b) => MethodInfo InetAddressMaskMatchesMethodInfo a signature where
    overloadedMethod _ = inetAddressMaskMatches

-- method InetAddressMask::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "InetAddressMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "g_inet_address_mask_to_string" g_inet_address_mask_to_string :: 
    Ptr InetAddressMask ->                  -- _obj : TInterface "Gio" "InetAddressMask"
    IO CString


inetAddressMaskToString ::
    (MonadIO m, InetAddressMaskK a) =>
    a                                       -- _obj
    -> m T.Text                             -- result
inetAddressMaskToString _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_inet_address_mask_to_string _obj'
    checkUnexpectedReturnNULL "g_inet_address_mask_to_string" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

data InetAddressMaskToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m, InetAddressMaskK a) => MethodInfo InetAddressMaskToStringMethodInfo a signature where
    overloadedMethod _ = inetAddressMaskToString