MrpProject

MrpProject

Synopsis


#include <libplanner/planner.h>

                    MrpProjectPriv;
                    MrpProject;
gboolean            (*MrpTaskTraverseFunc)              (MrpTask *,
                                                         gpointer );
MrpProject*         mrp_project_new                     (MrpApplication *app);
gboolean            mrp_project_is_empty                (MrpProject *project);
gboolean            mrp_project_needs_saving            (MrpProject *project);
mrptime             mrp_project_get_project_start       (MrpProject *project);
void                mrp_project_set_project_start       (MrpProject *project,
                                                         mrptime start);
gboolean            mrp_project_load                    (MrpProject *project,
                                                         const gchar *uri,
                                                         GError **error);
gboolean            mrp_project_save                    (MrpProject *project,
                                                         gboolean force,
                                                         GError **error);
gboolean            mrp_project_save_to_xml             (MrpProject *project,
                                                         gchar **str,
                                                         GError **error);
gboolean            mrp_project_load_from_xml           (MrpProject *project,
                                                         const gchar *str,
                                                         GError **error);
gboolean            mrp_project_save_as                 (MrpProject *project,
                                                         const gchar *uri,
                                                         gboolean force,
                                                         GError **error);
void                mrp_project_close                   (MrpProject *project);
const gchar*        mrp_project_get_uri                 (MrpProject *project);
MrpResource*        mrp_project_get_resource_by_name    (MrpProject *project,
                                                         const gchar *name);
GList*              mrp_project_get_resources           (MrpProject *project);
void                mrp_project_add_resource            (MrpProject *project,
                                                         MrpResource *resource);
void                mrp_project_remove_resource         (MrpProject *project,
                                                         MrpResource *resource);
MrpGroup*           mrp_project_get_group_by_name       (MrpProject *project,
                                                         const gchar *name);
GList*              mrp_project_get_groups              (MrpProject *project);
void                mrp_project_add_group               (MrpProject *project,
                                                         MrpGroup *group);
void                mrp_project_remove_group            (MrpProject *project,
                                                         MrpGroup *group);
MrpTask*            mrp_project_get_task_by_name        (MrpProject *project,
                                                         const gchar *name);
GList*              mrp_project_get_all_tasks           (MrpProject *project);
void                mrp_project_insert_task             (MrpProject *project,
                                                         MrpTask *parent,
                                                         gint position,
                                                         MrpTask *task);
void                mrp_project_remove_task             (MrpProject *project,
                                                         MrpTask *task);
gboolean            mrp_project_move_task               (MrpProject *project,
                                                         MrpTask *task,
                                                         MrpTask *sibling,
                                                         MrpTask *parent,
                                                         gboolean before,
                                                         GError **error);
MrpTask*            mrp_project_get_root_task           (MrpProject *project);
void                mrp_project_task_traverse           (MrpProject *project,
                                                         MrpTask *root,
                                                         MrpTaskTraverseFunc func,
                                                         gpointer user_data);
void                mrp_project_reschedule              (MrpProject *project);
gint                mrp_project_calculate_task_work     (MrpProject *project,
                                                         MrpTask *task,
                                                         mrptime start,
                                                         mrptime finish);
GList*              mrp_project_get_properties_from_type
                                                        (MrpProject *project,
                                                         GType object_type);
void                mrp_project_add_property            (MrpProject *project,
                                                         GType object_type,
                                                         MrpProperty *property,
                                                         gboolean user_defined);
void                mrp_project_remove_property         (MrpProject *project,
                                                         GType object_type,
                                                         const gchar *name);
MrpProperty*        mrp_project_get_property            (MrpProject *project,
                                                         const gchar *name,
                                                         GType object_type);
gboolean            mrp_project_has_property            (MrpProject *project,
                                                         GType owner_type,
                                                         const gchar *name);
MrpCalendar*        mrp_project_get_root_calendar       (MrpProject *project);
MrpCalendar*        mrp_project_get_calendar            (MrpProject *project);

Object Hierarchy

  GObject
   +----MrpObject
         +----MrpProject

Properties

  "calendar"                 MrpCalendar*          : Read / Write
  "default-group"            MrpGroup*             : Read / Write
  "manager"                  gchar*                : Read / Write
  "name"                     gchar*                : Read / Write
  "organization"             gchar*                : Read / Write
  "phase"                    gchar*                : Read / Write
  "phases"                   gpointer              : Read / Write
  "project-start"            glong                 : Read / Write

Signals

  "calendar-tree-changed"                          : Run Last
  "day-added"                                      : Run Last
  "day-changed"                                    : Run Last
  "day-removed"                                    : Run Last
  "default-group-changed"                          : Run Last
  "group-added"                                    : Run Last
  "group-removed"                                  : Run Last
  "loaded"                                         : Run Last
  "needs-saving-changed"                           : Run Last
  "property-added"                                 : Run Last
  "property-changed"                               : Run Last
  "property-removed"                               : Run Last
  "resource-added"                                 : Run Last
  "resource-removed"                               : Run Last
  "task-inserted"                                  : Run Last
  "task-moved"                                     : Run Last
  "task-removed"                                   : Run Last

Description

Details

MrpProjectPriv

typedef struct _MrpProjectPriv MrpProjectPriv;

A private struct for internal use only. The definition of this structure is not publically available.


MrpProject

typedef struct _MrpProject MrpProject;

Object representing a project.


MrpTaskTraverseFunc ()

gboolean            (*MrpTaskTraverseFunc)              (MrpTask *,
                                                         gpointer );

A function to use with mrp_project_task_traverse(). task is the currently traversed task, and data is the user data passed to the mrp_project_task_traverse(). The traversal can be stopped by returning TRUE.

Param1 :

Param2 :

Returns :

TRUE if the traversal is to be stopped.

mrp_project_new ()

MrpProject*         mrp_project_new                     (MrpApplication *app);

Creates a new MrpProject.

app :

MrpApplication that creates the new project.

Returns :

the MrpProject

mrp_project_is_empty ()

gboolean            mrp_project_is_empty                (MrpProject *project);

Checks whether a project is empty.

project :

an MrpProject

Returns :

TRUE if project is empty, otherwise FALSE

mrp_project_needs_saving ()

gboolean            mrp_project_needs_saving            (MrpProject *project);

Checks if project needs saving

project :

an MrpProject

Returns :

TRUE if project has been altered since last save, otherwise FALSE

mrp_project_get_project_start ()

mrptime             mrp_project_get_project_start       (MrpProject *project);

Fetches the project start from project.

project :

an MrpProject

Returns :

the project start

mrp_project_set_project_start ()

void                mrp_project_set_project_start       (MrpProject *project,
                                                         mrptime start);

Set the project start.

project :

an MrpProject

start :

project start time

mrp_project_load ()

gboolean            mrp_project_load                    (MrpProject *project,
                                                         const gchar *uri,
                                                         GError **error);

Loads a project stored at uri into project.

project :

an MrpProject

uri :

the URI where project should be read from

error :

location to store error, or NULL

Returns :

Returns TRUE on success, otherwise FALSE.

mrp_project_save ()

gboolean            mrp_project_save                    (MrpProject *project,
                                                         gboolean force,
                                                         GError **error);

Saves a project.

project :

an MrpProject

force :

overwrite changes done by someone else if necessary

error :

location to store error, or NULL

Returns :

TRUE on success, otherwise FALSE

mrp_project_save_to_xml ()

gboolean            mrp_project_save_to_xml             (MrpProject *project,
                                                         gchar **str,
                                                         GError **error);

Saves a project as XML to a string buffer.

project :

an MrpProject

str :

location to store XML string

error :

location to store error, or NULL

Returns :

TRUE on success, otherwise FALSE

mrp_project_load_from_xml ()

gboolean            mrp_project_load_from_xml           (MrpProject *project,
                                                         const gchar *str,
                                                         GError **error);

Loads a project from XML data into project.

project :

an MrpProject

str :

XML string with project data to read from

error :

location to store error, or NULL

Returns :

Returns TRUE on success, otherwise FALSE.

mrp_project_save_as ()

gboolean            mrp_project_save_as                 (MrpProject *project,
                                                         const gchar *uri,
                                                         gboolean force,
                                                         GError **error);

Saves a project to a specific URI.

project :

an MrpProject

uri :

URI to save to

force :

overwrite an existing file if necessary

error :

location to store error, or NULL

Returns :

TRUE on success, otherwise FALSE

mrp_project_close ()

void                mrp_project_close                   (MrpProject *project);

Closes a project.

project :

an MrpProject

mrp_project_get_uri ()

const gchar*        mrp_project_get_uri                 (MrpProject *project);

Fetches the URI from project.

project :

an MrpProject

Returns :

the URI of project

mrp_project_get_resource_by_name ()

MrpResource*        mrp_project_get_resource_by_name    (MrpProject *project,
                                                         const gchar *name);

Retrieves the first resource in the list that match the name.

project :

an MrpProject

name :

name to search for

Returns :

an MrpResource or NULL if not found

mrp_project_get_resources ()

GList*              mrp_project_get_resources           (MrpProject *project);

Fetches the list of resources in project. This list should not be freed and if caller needs to manipulate it, a copy needs to be made first.

project :

an MrpProject

Returns :

the resource list of project

mrp_project_add_resource ()

void                mrp_project_add_resource            (MrpProject *project,
                                                         MrpResource *resource);

Adds resource to the list of resources in project.

project :

an MrpProject

resource :

MrpResource to add

mrp_project_remove_resource ()

void                mrp_project_remove_resource         (MrpProject *project,
                                                         MrpResource *resource);

Removes resource from project.

project :

an MrpProject

resource :

MrpResource to remove

mrp_project_get_group_by_name ()

MrpGroup*           mrp_project_get_group_by_name       (MrpProject *project,
                                                         const gchar *name);

Retrieves the first group with name that matches name

project :

an MrpProject

name :

a name to look for

Returns :

an MrpGroup or NULL if not found

mrp_project_get_groups ()

GList*              mrp_project_get_groups              (MrpProject *project);

Fetches the list of groups in project. The list should not be freed and if caller needs to manipulate it, a copy needs to be made first.

project :

an MrpProject

Returns :

the group list of project

mrp_project_add_group ()

void                mrp_project_add_group               (MrpProject *project,
                                                         MrpGroup *group);

Adds group to the list of groups in project.

project :

an MrpProject

group :

MrpGroup to remove

mrp_project_remove_group ()

void                mrp_project_remove_group            (MrpProject *project,
                                                         MrpGroup *group);

Removes group from project.

project :

an MrpProject

group :

MrpGroup to remove

mrp_project_get_task_by_name ()

MrpTask*            mrp_project_get_task_by_name        (MrpProject *project,
                                                         const gchar *name);

Retrieves the first task with name matching name. Uses task_traverse to traverse all tasks.

project :

an MrpProject

name :

the name to look for

Returns :

an MrpTask or NULL if not found.

mrp_project_get_all_tasks ()

GList*              mrp_project_get_all_tasks           (MrpProject *project);

Returns a new list of the tasks in project. The caller needs to free the list with g_list_free(), but not the values in it.

project :

an MrpProject

Returns :

a newly allocated list of the tasks

mrp_project_insert_task ()

void                mrp_project_insert_task             (MrpProject *project,
                                                         MrpTask *parent,
                                                         gint position,
                                                         MrpTask *task);

Insert task in the task tree with parent at position among other children.

project :

an MrpProject

parent :

MrpTask that will be parent to inserted task

position :

position among children to insert task

task :

MrpTask to insert

mrp_project_remove_task ()

void                mrp_project_remove_task             (MrpProject *project,
                                                         MrpTask *task);

Removes task from the task tree in project.

project :

an MrpProject

task :

MrpTask to remove

mrp_project_move_task ()

gboolean            mrp_project_move_task               (MrpProject *project,
                                                         MrpTask *task,
                                                         MrpTask *sibling,
                                                         MrpTask *parent,
                                                         gboolean before,
                                                         GError **error);

Move the task in the task tree. If sibling is NULL task will be placed first among the children of parent if before is TRUE, otherwise it will be placed last. If sibling is set, task will be placed before or after sibling depending on the value of before.

project :

an MrpProject

task :

MrpTask to move

sibling :

MrpTask that task will be placed next to, can be NULL

parent :

MrpTask the new parent

before :

whether to put task before or after sibling.

error :

location to store error, or NULL

Returns :

TRUE on success, otherwise FALSE

mrp_project_get_root_task ()

MrpTask*            mrp_project_get_root_task           (MrpProject *project);

Fetches the root task from project.

project :

an MrpProject

Returns :

the root task

mrp_project_task_traverse ()

void                mrp_project_task_traverse           (MrpProject *project,
                                                         MrpTask *root,
                                                         MrpTaskTraverseFunc func,
                                                         gpointer user_data);

Calls func on each task under root in the task tree. user_data is passed to func. If func returns TRUE, the traversal is stopped.

project :

an MrpProject

root :

MrpTask indicates where traversing will begin.

func :

the function to call for each task

user_data :

user data passed to the function

mrp_project_reschedule ()

void                mrp_project_reschedule              (MrpProject *project);

Reschedules the project, calculating task start/end/duration etc.

project :

an MrpProject

mrp_project_calculate_task_work ()

gint                mrp_project_calculate_task_work     (MrpProject *project,
                                                         MrpTask *task,
                                                         mrptime start,
                                                         mrptime finish);

Calculates the work needed to achieve the given start and finish time, with the allocated resources' calendards in consideration.

project :

an MrpProject

task :

an MrpTask

start :

a start time, or if -1, the task start time is to be used

finish :

a finish time

Returns :

The calculated work.

mrp_project_get_properties_from_type ()

GList*              mrp_project_get_properties_from_type
                                                        (MrpProject *project,
                                                         GType object_type);

Fetches a list of the properties belonging to project and applies to object_type. The list should not be freed and needs to be copied before modified.

project :

an MrpProject

object_type :

a GType

Returns :

The list of properties.

mrp_project_add_property ()

void                mrp_project_add_property            (MrpProject *project,
                                                         GType object_type,
                                                         MrpProperty *property,
                                                         gboolean user_defined);

Add a custom property to project. The object_type specifies what kind of objects the property applies to. user_defined specifies whether the property is created by the user or by some plugin.

project :

an MrpProject

object_type :

the owner type

property :

an MrpProperty

user_defined :

whether the property is defined through a user interface

mrp_project_remove_property ()

void                mrp_project_remove_property         (MrpProject *project,
                                                         GType object_type,
                                                         const gchar *name);

Removes the property corresponding to object_type and name from project.

project :

an MrpProject

object_type :

a GType specifing object type to remove property from

name :

the name of the property

mrp_project_get_property ()

MrpProperty*        mrp_project_get_property            (MrpProject *project,
                                                         const gchar *name,
                                                         GType object_type);

Fetches an MrpProperty that corresponds to name and object_type. This is mainly for language bindings and should not be used for other cases.

project :

an MrpProject

name :

the name of the property

object_type :

object type the property belongs to

Returns :

An MrpProperty, if found, otherwise NULL.

mrp_project_has_property ()

gboolean            mrp_project_has_property            (MrpProject *project,
                                                         GType owner_type,
                                                         const gchar *name);

Checks if project has a property named name applying to object of type object_type.

project :

an MrpProperty

owner_type :

a GType specifing object type look for property on

name :

the name of the property

Returns :

TRUE if property name exists on objects of type object_type

mrp_project_get_root_calendar ()

MrpCalendar*        mrp_project_get_root_calendar       (MrpProject *project);

Fetches the root calendar of project.

project :

an MrpProject

Returns :

the root calendar of project

mrp_project_get_calendar ()

MrpCalendar*        mrp_project_get_calendar            (MrpProject *project);

Fetches the calendar used by project.

project :

an MrpProject

Returns :

the calendar used by project

Property Details

The "calendar" property

  "calendar"                 MrpCalendar*          : Read / Write

The calendar used in the project.


The "default-group" property

  "default-group"            MrpGroup*             : Read / Write

Default group for new resources.


The "manager" property

  "manager"                  gchar*                : Read / Write

The manager of the project.

Default value: ""


The "name" property

  "name"                     gchar*                : Read / Write

The name of the project.

Default value: ""


The "organization" property

  "organization"             gchar*                : Read / Write

The organization behind the project.

Default value: ""


The "phase" property

  "phase"                    gchar*                : Read / Write

The phase the project is in.

Default value: ""


The "phases" property

  "phases"                   gpointer              : Read / Write

The various phases the project can be in.


The "project-start" property

  "project-start"            glong                 : Read / Write

The start date of the project.

Allowed values: >= 0

Default value: 0

Signal Details

The "calendar-tree-changed" signal

void                user_function                      (MrpProject  *mrpproject,
                                                        MrpCalendar *arg1,
                                                        gpointer     user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "day-added" signal

void                user_function                      (MrpProject *mrpproject,
                                                        gpointer    arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "day-changed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        gpointer    arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "day-removed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        gpointer    arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "default-group-changed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        MrpGroup   *arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "group-added" signal

void                user_function                      (MrpProject *mrpproject,
                                                        MrpGroup   *arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "group-removed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        MrpGroup   *arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "loaded" signal

void                user_function                      (MrpProject *mrpproject,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.

The "needs-saving-changed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        gboolean    arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "property-added" signal

void                user_function                      (MrpProject *mrpproject,
                                                        glong       arg1,
                                                        gpointer    arg2,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

arg2 :

user_data :

user data set when the signal handler was connected.

The "property-changed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        gpointer    arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "property-removed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        gpointer    arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "resource-added" signal

void                user_function                      (MrpProject  *mrpproject,
                                                        MrpResource *arg1,
                                                        gpointer     user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "resource-removed" signal

void                user_function                      (MrpProject  *mrpproject,
                                                        MrpResource *arg1,
                                                        gpointer     user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "task-inserted" signal

void                user_function                      (MrpProject *mrpproject,
                                                        MrpTask    *arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "task-moved" signal

void                user_function                      (MrpProject *mrpproject,
                                                        MrpTask    *arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "task-removed" signal

void                user_function                      (MrpProject *mrpproject,
                                                        MrpTask    *arg1,
                                                        gpointer    user_data)       : Run Last

mrpproject :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.