module GI.Soup.Structs.Date
(
Date(..) ,
newZeroDate ,
noDate ,
DateCopyMethodInfo ,
dateCopy ,
DateFreeMethodInfo ,
dateFree ,
DateGetDayMethodInfo ,
dateGetDay ,
DateGetHourMethodInfo ,
dateGetHour ,
DateGetMinuteMethodInfo ,
dateGetMinute ,
DateGetMonthMethodInfo ,
dateGetMonth ,
DateGetOffsetMethodInfo ,
dateGetOffset ,
DateGetSecondMethodInfo ,
dateGetSecond ,
DateGetUtcMethodInfo ,
dateGetUtc ,
DateGetYearMethodInfo ,
dateGetYear ,
DateIsPastMethodInfo ,
dateIsPast ,
dateNew ,
dateNewFromNow ,
dateNewFromString ,
dateNewFromTimeT ,
DateToStringMethodInfo ,
dateToString ,
DateToTimeTMethodInfo ,
dateToTimeT ,
DateToTimevalMethodInfo ,
dateToTimeval ,
date_day ,
getDateDay ,
setDateDay ,
date_hour ,
getDateHour ,
setDateHour ,
date_minute ,
getDateMinute ,
setDateMinute ,
date_month ,
getDateMonth ,
setDateMonth ,
date_offset ,
getDateOffset ,
setDateOffset ,
date_second ,
getDateSecond ,
setDateSecond ,
date_utc ,
getDateUtc ,
setDateUtc ,
date_year ,
getDateYear ,
setDateYear ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GI.GLib.Structs.TimeVal as GLib.TimeVal
import qualified GI.Soup.Enums as Soup.Enums
newtype Date = Date (ManagedPtr Date)
foreign import ccall "soup_date_get_type" c_soup_date_get_type ::
IO GType
instance BoxedObject Date where
boxedType _ = c_soup_date_get_type
newZeroDate :: MonadIO m => m Date
newZeroDate = liftIO $ callocBoxedBytes 32 >>= wrapBoxed Date
instance tag ~ 'AttrSet => Constructible Date tag where
new _ attrs = do
o <- newZeroDate
GI.Attributes.set o attrs
return o
noDate :: Maybe Date
noDate = Nothing
getDateYear :: MonadIO m => Date -> m Int32
getDateYear s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int32
return val
setDateYear :: MonadIO m => Date -> Int32 -> m ()
setDateYear s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Int32)
data DateYearFieldInfo
instance AttrInfo DateYearFieldInfo where
type AttrAllowedOps DateYearFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateYearFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateYearFieldInfo = (~) Date
type AttrGetType DateYearFieldInfo = Int32
type AttrLabel DateYearFieldInfo = "year"
type AttrOrigin DateYearFieldInfo = Date
attrGet _ = getDateYear
attrSet _ = setDateYear
attrConstruct = undefined
attrClear _ = undefined
date_year :: AttrLabelProxy "year"
date_year = AttrLabelProxy
getDateMonth :: MonadIO m => Date -> m Int32
getDateMonth s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO Int32
return val
setDateMonth :: MonadIO m => Date -> Int32 -> m ()
setDateMonth s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 4) (val :: Int32)
data DateMonthFieldInfo
instance AttrInfo DateMonthFieldInfo where
type AttrAllowedOps DateMonthFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateMonthFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateMonthFieldInfo = (~) Date
type AttrGetType DateMonthFieldInfo = Int32
type AttrLabel DateMonthFieldInfo = "month"
type AttrOrigin DateMonthFieldInfo = Date
attrGet _ = getDateMonth
attrSet _ = setDateMonth
attrConstruct = undefined
attrClear _ = undefined
date_month :: AttrLabelProxy "month"
date_month = AttrLabelProxy
getDateDay :: MonadIO m => Date -> m Int32
getDateDay s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Int32
return val
setDateDay :: MonadIO m => Date -> Int32 -> m ()
setDateDay s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Int32)
data DateDayFieldInfo
instance AttrInfo DateDayFieldInfo where
type AttrAllowedOps DateDayFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateDayFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateDayFieldInfo = (~) Date
type AttrGetType DateDayFieldInfo = Int32
type AttrLabel DateDayFieldInfo = "day"
type AttrOrigin DateDayFieldInfo = Date
attrGet _ = getDateDay
attrSet _ = setDateDay
attrConstruct = undefined
attrClear _ = undefined
date_day :: AttrLabelProxy "day"
date_day = AttrLabelProxy
getDateHour :: MonadIO m => Date -> m Int32
getDateHour s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Int32
return val
setDateHour :: MonadIO m => Date -> Int32 -> m ()
setDateHour s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 12) (val :: Int32)
data DateHourFieldInfo
instance AttrInfo DateHourFieldInfo where
type AttrAllowedOps DateHourFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateHourFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateHourFieldInfo = (~) Date
type AttrGetType DateHourFieldInfo = Int32
type AttrLabel DateHourFieldInfo = "hour"
type AttrOrigin DateHourFieldInfo = Date
attrGet _ = getDateHour
attrSet _ = setDateHour
attrConstruct = undefined
attrClear _ = undefined
date_hour :: AttrLabelProxy "hour"
date_hour = AttrLabelProxy
getDateMinute :: MonadIO m => Date -> m Int32
getDateMinute s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int32
return val
setDateMinute :: MonadIO m => Date -> Int32 -> m ()
setDateMinute s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int32)
data DateMinuteFieldInfo
instance AttrInfo DateMinuteFieldInfo where
type AttrAllowedOps DateMinuteFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateMinuteFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateMinuteFieldInfo = (~) Date
type AttrGetType DateMinuteFieldInfo = Int32
type AttrLabel DateMinuteFieldInfo = "minute"
type AttrOrigin DateMinuteFieldInfo = Date
attrGet _ = getDateMinute
attrSet _ = setDateMinute
attrConstruct = undefined
attrClear _ = undefined
date_minute :: AttrLabelProxy "minute"
date_minute = AttrLabelProxy
getDateSecond :: MonadIO m => Date -> m Int32
getDateSecond s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO Int32
return val
setDateSecond :: MonadIO m => Date -> Int32 -> m ()
setDateSecond s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 20) (val :: Int32)
data DateSecondFieldInfo
instance AttrInfo DateSecondFieldInfo where
type AttrAllowedOps DateSecondFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateSecondFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateSecondFieldInfo = (~) Date
type AttrGetType DateSecondFieldInfo = Int32
type AttrLabel DateSecondFieldInfo = "second"
type AttrOrigin DateSecondFieldInfo = Date
attrGet _ = getDateSecond
attrSet _ = setDateSecond
attrConstruct = undefined
attrClear _ = undefined
date_second :: AttrLabelProxy "second"
date_second = AttrLabelProxy
getDateUtc :: MonadIO m => Date -> m Bool
getDateUtc s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CInt
let val' = (/= 0) val
return val'
setDateUtc :: MonadIO m => Date -> Bool -> m ()
setDateUtc s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 24) (val' :: CInt)
data DateUtcFieldInfo
instance AttrInfo DateUtcFieldInfo where
type AttrAllowedOps DateUtcFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateUtcFieldInfo = (~) Bool
type AttrBaseTypeConstraint DateUtcFieldInfo = (~) Date
type AttrGetType DateUtcFieldInfo = Bool
type AttrLabel DateUtcFieldInfo = "utc"
type AttrOrigin DateUtcFieldInfo = Date
attrGet _ = getDateUtc
attrSet _ = setDateUtc
attrConstruct = undefined
attrClear _ = undefined
date_utc :: AttrLabelProxy "utc"
date_utc = AttrLabelProxy
getDateOffset :: MonadIO m => Date -> m Int32
getDateOffset s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 28) :: IO Int32
return val
setDateOffset :: MonadIO m => Date -> Int32 -> m ()
setDateOffset s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 28) (val :: Int32)
data DateOffsetFieldInfo
instance AttrInfo DateOffsetFieldInfo where
type AttrAllowedOps DateOffsetFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DateOffsetFieldInfo = (~) Int32
type AttrBaseTypeConstraint DateOffsetFieldInfo = (~) Date
type AttrGetType DateOffsetFieldInfo = Int32
type AttrLabel DateOffsetFieldInfo = "offset"
type AttrOrigin DateOffsetFieldInfo = Date
attrGet _ = getDateOffset
attrSet _ = setDateOffset
attrConstruct = undefined
attrClear _ = undefined
date_offset :: AttrLabelProxy "offset"
date_offset = AttrLabelProxy
instance O.HasAttributeList Date
type instance O.AttributeList Date = DateAttributeList
type DateAttributeList = ('[ '("year", DateYearFieldInfo), '("month", DateMonthFieldInfo), '("day", DateDayFieldInfo), '("hour", DateHourFieldInfo), '("minute", DateMinuteFieldInfo), '("second", DateSecondFieldInfo), '("utc", DateUtcFieldInfo), '("offset", DateOffsetFieldInfo)] :: [(Symbol, *)])
foreign import ccall "soup_date_new" soup_date_new ::
Int32 ->
Int32 ->
Int32 ->
Int32 ->
Int32 ->
Int32 ->
IO (Ptr Date)
dateNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Int32
-> Int32
-> Int32
-> Int32
-> Int32
-> Int32
-> m Date
dateNew year month day hour minute second = liftIO $ do
result <- soup_date_new year month day hour minute second
checkUnexpectedReturnNULL "dateNew" result
result' <- (wrapBoxed Date) result
return result'
foreign import ccall "soup_date_new_from_now" soup_date_new_from_now ::
Int32 ->
IO (Ptr Date)
dateNewFromNow ::
(B.CallStack.HasCallStack, MonadIO m) =>
Int32
-> m Date
dateNewFromNow offsetSeconds = liftIO $ do
result <- soup_date_new_from_now offsetSeconds
checkUnexpectedReturnNULL "dateNewFromNow" result
result' <- (wrapBoxed Date) result
return result'
foreign import ccall "soup_date_new_from_string" soup_date_new_from_string ::
CString ->
IO (Ptr Date)
dateNewFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m (Maybe Date)
dateNewFromString dateString = liftIO $ do
dateString' <- textToCString dateString
result <- soup_date_new_from_string dateString'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Date) result'
return result''
freeMem dateString'
return maybeResult
foreign import ccall "soup_date_new_from_time_t" soup_date_new_from_time_t ::
CLong ->
IO (Ptr Date)
dateNewFromTimeT ::
(B.CallStack.HasCallStack, MonadIO m) =>
CLong
-> m Date
dateNewFromTimeT when_ = liftIO $ do
result <- soup_date_new_from_time_t when_
checkUnexpectedReturnNULL "dateNewFromTimeT" result
result' <- (wrapBoxed Date) result
return result'
foreign import ccall "soup_date_copy" soup_date_copy ::
Ptr Date ->
IO (Ptr Date)
dateCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Date
dateCopy date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_copy date'
checkUnexpectedReturnNULL "dateCopy" result
result' <- (wrapBoxed Date) result
touchManagedPtr date
return result'
data DateCopyMethodInfo
instance (signature ~ (m Date), MonadIO m) => O.MethodInfo DateCopyMethodInfo Date signature where
overloadedMethod _ = dateCopy
foreign import ccall "soup_date_free" soup_date_free ::
Ptr Date ->
IO ()
dateFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m ()
dateFree date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
soup_date_free date'
touchManagedPtr date
return ()
data DateFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo DateFreeMethodInfo Date signature where
overloadedMethod _ = dateFree
foreign import ccall "soup_date_get_day" soup_date_get_day ::
Ptr Date ->
IO Int32
dateGetDay ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetDay date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_day date'
touchManagedPtr date
return result
data DateGetDayMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetDayMethodInfo Date signature where
overloadedMethod _ = dateGetDay
foreign import ccall "soup_date_get_hour" soup_date_get_hour ::
Ptr Date ->
IO Int32
dateGetHour ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetHour date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_hour date'
touchManagedPtr date
return result
data DateGetHourMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetHourMethodInfo Date signature where
overloadedMethod _ = dateGetHour
foreign import ccall "soup_date_get_minute" soup_date_get_minute ::
Ptr Date ->
IO Int32
dateGetMinute ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetMinute date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_minute date'
touchManagedPtr date
return result
data DateGetMinuteMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetMinuteMethodInfo Date signature where
overloadedMethod _ = dateGetMinute
foreign import ccall "soup_date_get_month" soup_date_get_month ::
Ptr Date ->
IO Int32
dateGetMonth ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetMonth date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_month date'
touchManagedPtr date
return result
data DateGetMonthMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetMonthMethodInfo Date signature where
overloadedMethod _ = dateGetMonth
foreign import ccall "soup_date_get_offset" soup_date_get_offset ::
Ptr Date ->
IO Int32
dateGetOffset ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetOffset date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_offset date'
touchManagedPtr date
return result
data DateGetOffsetMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetOffsetMethodInfo Date signature where
overloadedMethod _ = dateGetOffset
foreign import ccall "soup_date_get_second" soup_date_get_second ::
Ptr Date ->
IO Int32
dateGetSecond ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetSecond date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_second date'
touchManagedPtr date
return result
data DateGetSecondMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetSecondMethodInfo Date signature where
overloadedMethod _ = dateGetSecond
foreign import ccall "soup_date_get_utc" soup_date_get_utc ::
Ptr Date ->
IO Int32
dateGetUtc ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetUtc date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_utc date'
touchManagedPtr date
return result
data DateGetUtcMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetUtcMethodInfo Date signature where
overloadedMethod _ = dateGetUtc
foreign import ccall "soup_date_get_year" soup_date_get_year ::
Ptr Date ->
IO Int32
dateGetYear ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Int32
dateGetYear date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_get_year date'
touchManagedPtr date
return result
data DateGetYearMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo DateGetYearMethodInfo Date signature where
overloadedMethod _ = dateGetYear
foreign import ccall "soup_date_is_past" soup_date_is_past ::
Ptr Date ->
IO CInt
dateIsPast ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m Bool
dateIsPast date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_is_past date'
let result' = (/= 0) result
touchManagedPtr date
return result'
data DateIsPastMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo DateIsPastMethodInfo Date signature where
overloadedMethod _ = dateIsPast
foreign import ccall "soup_date_to_string" soup_date_to_string ::
Ptr Date ->
CUInt ->
IO CString
dateToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> Soup.Enums.DateFormat
-> m T.Text
dateToString date format = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
let format' = (fromIntegral . fromEnum) format
result <- soup_date_to_string date' format'
checkUnexpectedReturnNULL "dateToString" result
result' <- cstringToText result
freeMem result
touchManagedPtr date
return result'
data DateToStringMethodInfo
instance (signature ~ (Soup.Enums.DateFormat -> m T.Text), MonadIO m) => O.MethodInfo DateToStringMethodInfo Date signature where
overloadedMethod _ = dateToString
foreign import ccall "soup_date_to_time_t" soup_date_to_time_t ::
Ptr Date ->
IO CLong
dateToTimeT ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m CLong
dateToTimeT date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
result <- soup_date_to_time_t date'
touchManagedPtr date
return result
data DateToTimeTMethodInfo
instance (signature ~ (m CLong), MonadIO m) => O.MethodInfo DateToTimeTMethodInfo Date signature where
overloadedMethod _ = dateToTimeT
foreign import ccall "soup_date_to_timeval" soup_date_to_timeval ::
Ptr Date ->
Ptr GLib.TimeVal.TimeVal ->
IO ()
dateToTimeval ::
(B.CallStack.HasCallStack, MonadIO m) =>
Date
-> m (GLib.TimeVal.TimeVal)
dateToTimeval date = liftIO $ do
date' <- unsafeManagedPtrGetPtr date
time <- callocBytes 16 :: IO (Ptr GLib.TimeVal.TimeVal)
soup_date_to_timeval date' time
time' <- (wrapPtr GLib.TimeVal.TimeVal) time
touchManagedPtr date
return time'
data DateToTimevalMethodInfo
instance (signature ~ (m (GLib.TimeVal.TimeVal)), MonadIO m) => O.MethodInfo DateToTimevalMethodInfo Date signature where
overloadedMethod _ = dateToTimeval
type family ResolveDateMethod (t :: Symbol) (o :: *) :: * where
ResolveDateMethod "copy" o = DateCopyMethodInfo
ResolveDateMethod "free" o = DateFreeMethodInfo
ResolveDateMethod "isPast" o = DateIsPastMethodInfo
ResolveDateMethod "toString" o = DateToStringMethodInfo
ResolveDateMethod "toTimeT" o = DateToTimeTMethodInfo
ResolveDateMethod "toTimeval" o = DateToTimevalMethodInfo
ResolveDateMethod "getDay" o = DateGetDayMethodInfo
ResolveDateMethod "getHour" o = DateGetHourMethodInfo
ResolveDateMethod "getMinute" o = DateGetMinuteMethodInfo
ResolveDateMethod "getMonth" o = DateGetMonthMethodInfo
ResolveDateMethod "getOffset" o = DateGetOffsetMethodInfo
ResolveDateMethod "getSecond" o = DateGetSecondMethodInfo
ResolveDateMethod "getUtc" o = DateGetUtcMethodInfo
ResolveDateMethod "getYear" o = DateGetYearMethodInfo
ResolveDateMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDateMethod t Date, O.MethodInfo info Date p) => O.IsLabelProxy t (Date -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDateMethod t Date, O.MethodInfo info Date p) => O.IsLabel t (Date -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif