![]() |
![]() |
![]() |
Libplanner Reference Manual | ![]() |
---|---|---|---|---|
#include <libplanner/planner.h> MrpCalendarPriv; MrpCalendar; MrpInterval; MrpCalendar* mrp_calendar_new (const gchar *name, MrpProject *project); MrpCalendar* mrp_calendar_copy (const gchar *name, MrpCalendar *calendar); MrpCalendar* mrp_calendar_derive (const gchar *name, MrpCalendar *parent); void mrp_calendar_reparent (MrpCalendar *new_parent, MrpCalendar *child); void mrp_calendar_remove (MrpCalendar *calendar); const gchar* mrp_calendar_get_name (MrpCalendar *calendar); void mrp_calendar_set_name (MrpCalendar *calendar, const gchar *name); void mrp_calendar_day_set_intervals (MrpCalendar *calendar, MrpDay *day, GList *intervals); GList* mrp_calendar_day_get_intervals (MrpCalendar *calendar, MrpDay *day, gboolean check_ancestors); gint mrp_calendar_day_get_total_work (MrpCalendar *calendar, MrpDay *day); MrpDay* mrp_calendar_get_day (MrpCalendar *calendar, mrptime date, gboolean check_ancestors); MrpDay* mrp_calendar_get_default_day (MrpCalendar *calendar, gint week_day); void mrp_calendar_set_default_days (MrpCalendar *calendar, gint week_day, ...); void mrp_calendar_set_days (MrpCalendar *calendar, mrptime date, ...); MrpCalendar* mrp_calendar_get_parent (MrpCalendar *calendar); GList* mrp_calendar_get_children (MrpCalendar *calendar); MrpInterval* mrp_interval_new (mrptime start, mrptime end); MrpInterval* mrp_interval_copy (MrpInterval *interval); MrpInterval* mrp_interval_ref (MrpInterval *interval); void mrp_interval_unref (MrpInterval *interval); void mrp_interval_get_absolute (MrpInterval *interval, mrptime offset, mrptime *start, mrptime *end);
A calendar contains the information on working/nonworking time for resources. A calendar has a default week, specifying the day types (MrpDay) used for each day of the week by default.
Day types can be overriden so that a working day has another set of working time intervals per calendar. Certain dates can be overridden to use another day type as well.
typedef struct _MrpCalendarPriv MrpCalendarPriv;
A private struct for internal use only. The definition of this structure is not publically available.
MrpCalendar* mrp_calendar_new (const gchar *name, MrpProject *project);
Creates a new MrpCalendar. The calendar will be empty so you need to set the
default week and/or override days, see mrp_calendar_set_default_days()
and
mrp_calendar_set_days()
.
|
name of the calendar |
|
the MrpProject that the new calendar will belong to |
Returns : |
A new MrpCalendar. |
MrpCalendar* mrp_calendar_copy (const gchar *name, MrpCalendar *calendar);
Copies calendar
, making the new calendar a base calendar, that does not have
a parent.
|
the name of the new calendar |
|
a MrpCalendar to copy |
Returns : |
a new MrpCalendar that is a copy of calendar .
|
MrpCalendar* mrp_calendar_derive (const gchar *name, MrpCalendar *parent);
Derives a new calendar from parent
. The new calendar will inherit all
properties from parent
, so if no days are overridden, the calendars will be
identical.
|
the name of the new calendar |
|
the MrpCalendar to derive |
Returns : |
a new MrpCalendar that is derived from parent .
|
void mrp_calendar_reparent (MrpCalendar *new_parent, MrpCalendar *child);
Changes the parent of calendar
so that it inherits new_parent
, instead of
its old parent.
|
the new parent |
|
an MrpCalendar |
void mrp_calendar_remove (MrpCalendar *calendar);
Removes calendar
from the project. If the calendar is used by the project, a
new calendar is set for the project. If the calendar has a parent, the parent
is used, otherwise the first child of the root is used. For resources, the
calendar is exchanged for the parent if one exists, otherwise the resource
calendar is unset, so that the project default will be used.
|
an MrpCalendar |
const gchar* mrp_calendar_get_name (MrpCalendar *calendar);
Retrieves the name of the calendar.
|
an MrpCalendar |
Returns : |
the calendar name. |
void mrp_calendar_set_name (MrpCalendar *calendar, const gchar *name);
Sets the name of the calendar.
|
an MrpCalendar |
|
the new name |
void mrp_calendar_day_set_intervals (MrpCalendar *calendar, MrpDay *day, GList *intervals);
Overrides the working time for the day type day
when used in calendar
.
|
an MrpCalendar |
|
an MrpDay |
|
list of MrpInterval to set for the specified day |
GList* mrp_calendar_day_get_intervals (MrpCalendar *calendar, MrpDay *day, gboolean check_ancestors);
Retrieves the working time for the given day/calendar combination. If
check_ancestors
is TRUE
, the calendar hierarchy is searched until a
calendar that has set the working time for this day type is found. If FALSE
,
the returned list will be empty if there is no explicit working time set for
calendar
.
|
an MrpCalendar |
|
an MrpDay |
|
specifies if the whole calendar hierarchy should be checked |
Returns : |
List of MrpInterval, specifying the working time for day .
|
gint mrp_calendar_day_get_total_work (MrpCalendar *calendar, MrpDay *day);
Calculates the total amount of work for day
in calendar
.
|
an MrpCalendar |
|
an MrpDay |
Returns : |
the amount of work in seconds. |
MrpDay* mrp_calendar_get_day (MrpCalendar *calendar, mrptime date, gboolean check_ancestors);
Retrieves the day type for the given date and calender. If check_ancestors
is TRUE
, the parent and grandparent, and so on, is searched if calendar
does not have an overridden day type for the specified date.
|
an MrpCalendar |
|
an mrptime |
|
specifies if the whole calendar hierarchy should be checked |
Returns : |
An MrpDay. |
MrpDay* mrp_calendar_get_default_day (MrpCalendar *calendar, gint week_day);
Retrieves the default day for calendar
.
|
an MrpCalendar |
|
integer in the range 0 - 6, where 0 is Sunday |
Returns : |
default MrpDay. |
void mrp_calendar_set_default_days (MrpCalendar *calendar, gint week_day, ...);
Sets days in the default week for calendar
. Those are the days that are used
as fallback is a date is not overridden.
|
an MrpCalendar |
|
integer in the range 0 - 6, where 0 is Sunday |
|
MrpDay followed by more week day/MrpDay pairs, terminated by -1 |
void mrp_calendar_set_days (MrpCalendar *calendar, mrptime date, ...);
Overrides specific dates in calendar
, setting the type of day to use for
those dates.
|
an MrpCalendar |
|
an mrptime |
|
MrpDay followed by more mrptime/MrpDay pairs, terminated by -1 |
MrpCalendar* mrp_calendar_get_parent (MrpCalendar *calendar);
Retrieves the parent calendar of calendar
. The parent is the calendar that a
calendar falls back to if a date or day type is not overridden.
|
an MrpCalendar |
Returns : |
The parent calendar. |
GList* mrp_calendar_get_children (MrpCalendar *calendar);
Retreives a list of the children, i.e. the calenderas that are immediately
derived from calendar
.
|
an MrpCalendar |
Returns : |
List of calendar 's children.
|
MrpInterval* mrp_interval_new (mrptime start, mrptime end);
Creates a new MrpInterval ranging from start
to end
.
MrpInterval* mrp_interval_copy (MrpInterval *interval);
Copies interval
.
|
an MrpInterval |
Returns : |
The copied interval. |
MrpInterval* mrp_interval_ref (MrpInterval *interval);
Increases the reference count on interval
.
|
an MrpInterval |
Returns : |
The interval. |
void mrp_interval_unref (MrpInterval *interval);
Decreases the reference count on interval
. When the count goes to 0, the
interval is freed.
|
an MrpInterval |
void mrp_interval_get_absolute (MrpInterval *interval, mrptime offset, mrptime *start, mrptime *end);
Retrieves the start and end time of interval, with an optional offset
.
|
an MrpInterval |
|
the offset to add to start and end |
|
location to store start time, or NULL
|
|
location to store end time, or NULL
|
"calendar-changed"
signalvoid user_function (MrpCalendar *mrpcalendar, gpointer user_data) : Run Last
|
the object which received the signal. |
|
user data set when the signal handler was connected. |