<!--
  Copyright (C) 2015 William Yu <williamyu@gnome.org>
  
  This library is free software: you can redistribute it and/or modify it
  under the terms of version 2.1. of the GNU Lesser General Public License
  as published by the Free Software Foundation.
  
  This library is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
  for more details.
  
  You should have received a copy of the GNU Lesser General Public License
  along with this library. If not, see <http://www.gnu.org/licenses/>.
-->
<structure namespace="ICal" name="DatetimeperiodType" native="struct icaldatetimeperiodtype" is_bare="true" default_native="i_cal_datetimeperiod_type_new_default ()" includes="libical-glib/i-cal-timetype.h, libical-glib/i-cal-period-type.h">
	<method name="i_cal_datetimeperiod_type_new_default" corresponds="CUSTOM" annotation="skip" kind="constructor" since="1.0">
        <returns type="struct icaldatetimeperiodtype" annotation="transfer full" comment="The newly created #ICalDatetimeperiodType" />
        <comment xml:space="preserve">Create a new default #ICalDatetimeperiodType</comment>
        <custom>	struct icaldatetimeperiodtype datetimeperiodtype;
	datetimeperiodtype.time = i_cal_timetype_new_default ();
	datetimeperiodtype.period = icalperiodtype_null_period ();
	return datetimeperiodtype;</custom>
    </method>
    <method name="i_cal_datetimeperiod_type_get_time" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalDatetimeperiodType *" name="dtp" comment="The #ICalDatetimeperiodType to be queried"/>
    	<returns type="ICalTimetype *" annotation="transfer full" comment="The time attribute of @dtp."/>
    	<comment>Get the time attribute of #ICalDatetimeperiodType.</comment>
    	<custom>	g_return_val_if_fail (dtp != NULL &amp;&amp; I_CAL_IS_DATETIMEPERIOD_TYPE (dtp), NULL);
	return i_cal_timetype_new_full (((struct icaldatetimeperiodtype *)i_cal_object_get_native ((ICalObject *)dtp))->time);</custom>
    </method>
    <method name="i_cal_datetimeperiod_type_set_time" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalDatetimeperiodType *" name="dtp" comment="The #ICalDatetimeperiodType to be set"/>
    	<parameter type="ICalTimetype *" name="time" comment="The time attribute of @dtp."/>
    	<comment>Set the time attribute of #ICalDatetimeperiodType.</comment>
    	<custom>	g_return_if_fail (dtp != NULL &amp;&amp; I_CAL_IS_DATETIMEPERIOD_TYPE (dtp));
	g_return_if_fail (time != NULL &amp;&amp; I_CAL_IS_TIMETYPE (time));
	((struct icaldatetimeperiodtype *)i_cal_object_get_native ((ICalObject *)dtp))->time = *(struct icaltimetype *)i_cal_object_get_native ((ICalObject *)time);</custom>
    </method>
    <method name="i_cal_datetimeperiod_type_get_period" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalDatetimeperiodType *" name="dtp" comment="The #ICalDatetimeperiodType to be queried"/>
    	<returns type="ICalPeriodType *" annotation="transfer full" comment="The period attribute of @dtp."/>
    	<comment>Get the period attribute of #ICalDatetimeperiodType.</comment>
    	<custom>	g_return_val_if_fail (dtp != NULL &amp;&amp; I_CAL_IS_DATETIMEPERIOD_TYPE (dtp), NULL);
	return i_cal_period_type_new_full (((struct icaldatetimeperiodtype *)i_cal_object_get_native ((ICalObject *)dtp))->period);</custom>
    </method>
    <method name="i_cal_datetimeperiod_type_set_period" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalDatetimeperiodType *" name="dtp" comment="The #ICalDatetimeperiodType to be set"/>
    	<parameter type="ICalPeriodType *" name="period" comment="The period attribute of @dtp."/>
    	<comment>Set the period attribute of #ICalDatetimeperiodType.</comment>
    	<custom>	g_return_if_fail (dtp != NULL &amp;&amp; I_CAL_IS_DATETIMEPERIOD_TYPE (dtp));
	g_return_if_fail (period != NULL &amp;&amp; I_CAL_IS_PERIOD_TYPE (period));
	((struct icaldatetimeperiodtype *)i_cal_object_get_native ((ICalObject *)dtp))->period = *(struct icalperiodtype *)i_cal_object_get_native ((ICalObject *)period);</custom>
    </method>
</structure>
