module System.Mesos.Raw.ContainerId where import System.Mesos.Internal type ContainerIDPtr = Ptr ContainerID foreign import ccall unsafe "ext/types.h toContainerID" c_toContainerID :: ToID ContainerIDPtr foreign import ccall unsafe "ext/types.h fromContainerID" c_fromContainerID :: FromID ContainerIDPtr foreign import ccall unsafe "ext/types.h destroyContainerID" c_destroyContainerID :: ContainerIDPtr -> IO () instance CPPValue ContainerID where marshal x = do (strp, l) <- cstring $ containerIDId' x liftIO $ c_toContainerID strp $ fromIntegral l unmarshal p = fmap ContainerID $ do ptrPtr <- alloc len <- liftIO $ c_fromContainerID p ptrPtr peekCString' (ptrPtr, len) destroy = c_destroyContainerID