hs-mesos-0.20.2.0: src/System/Mesos/Raw/Filters.hs
module System.Mesos.Raw.Filters where
import System.Mesos.Internal
type FiltersPtr = Ptr Filters
foreign import ccall unsafe "ext/types.h toFilters" c_toFilters
:: Ptr CDouble
-> IO FiltersPtr
foreign import ccall unsafe "ext/types.h fromFilters" c_fromFilters
:: FiltersPtr
-> Ptr CBool
-> Ptr CDouble
-> IO ()
foreign import ccall unsafe "ext/types.h destroyFilters" c_destroyFilters
:: FiltersPtr
-> IO ()
instance CPPValue Filters where
marshal f = case filtersRefuseSeconds f of
Nothing -> liftIO $ c_toFilters nullPtr
Just s -> do
sp <- alloc
poke sp (CDouble s)
liftIO $ c_toFilters sp
unmarshal fp = do
rsc <- alloc
rsp <- alloc
liftIO $ c_fromFilters fp rsc rsp
ms <- peekMaybePrim rsp rsc
return $ Filters $ fmap (\(CDouble d) -> d) ms
destroy = c_destroyFilters
equalExceptDefaults (Filters f) (Filters f') = defEq 5.0 f f'