MrpTask

MrpTask

Functions

Properties

MrpConstraint * constraint Read / Write
gboolean critical Read / Write
int duration Read / Write
glong finish Read
glong latest-finish Read
glong latest-start Read
char * name Read / Write
char * note Read / Write
int percent-complete Read / Write
int priority Read / Write
MrpTaskSched sched Read / Write
glong start Read
MrpTaskType type Read / Write
int work Read / Write

Signals

void assignment-added Run Last
void assignment-removed Run Last
void child-added Run Last
void child-removed Run Last
void relation-added Run Last
void relation-removed Run Last
void task-moved Run Last

Types and Values

Object Hierarchy

    GObject
    ╰── MrpObject
        ╰── MrpTask

Includes

#include <libplanner/planner.h>

Description

Functions

mrp_task_new ()

MrpTask *
mrp_task_new (void);

Create a new task.

Returns

the newly created MrpTask.


mrp_task_set_name ()

void
mrp_task_set_name (MrpTask *task,
                   const gchar *name);

Sets the name of task .

Parameters

task

an MrpResource

 

name

new name of task

 

mrp_task_get_name ()

const gchar *
mrp_task_get_name (MrpTask *task);

Retrives the name of task .

Parameters

task

an MrpTask

 

Returns

the name


mrp_task_add_predecessor ()

MrpRelation *
mrp_task_add_predecessor (MrpTask *task,
                          MrpTask *predecessor,
                          MrpRelationType type,
                          glong lag,
                          GError **error);

Adds a predecessor task to a task. Depending on type, the predecessor must be started or finished before task can be started or finished, with an optional lag/lead time.

Parameters

task

an MrpTask

 

predecessor

the predecessor

 

type

type of relation

 

lag

lag time, if negative, it means lead time

 

error

location to store error, or NULL

 

Returns

the relation that represents the predecessor/successor link.

[transfer full]


mrp_task_remove_predecessor ()

void
mrp_task_remove_predecessor (MrpTask *task,
                             MrpTask *predecessor);

Removes a predecessor previously added to task.

Parameters

task

an MrpTask

 

predecessor

the predecessor to remove

 

mrp_task_get_relation ()

MrpRelation *
mrp_task_get_relation (MrpTask *task_a,
                       MrpTask *task_b);

Fetches a relation between two tasks if it exists.

Parameters

task_a

an MrpTask

 

task_b

an MrpTask

 

Returns

a MrpRelation representing the relation between task_a and task_b or NULL if they don't have any relation.

[transfer none]


mrp_task_get_predecessor_relation ()

MrpRelation *
mrp_task_get_predecessor_relation (MrpTask *task,
                                   MrpTask *predecessor);

Fetches a predecessor relation between task and it's predecessor.

Parameters

task

an MrpTask

 

predecessor

an MrpTask

 

Returns

the MrpRelation if it exists, otherwise NULL.

[transfer none]


mrp_task_get_successor_relation ()

MrpRelation *
mrp_task_get_successor_relation (MrpTask *task,
                                 MrpTask *successor);

Fetches a successor relation between task and it's successor.

Parameters

task

an MrpTask

 

successor

an MrpTask

 

Returns

the MrpRelation if it exists, otherwise NULL.

[transfer none]


mrp_task_get_predecessor_relations ()

GList *
mrp_task_get_predecessor_relations (MrpTask *task);

Fetches a list of predecessor relations to task .

Parameters

task

an MrpTask

 

Returns

the list of predecessor relations to task .

[element-type Mrp.Relation][transfer none]


mrp_task_get_successor_relations ()

GList *
mrp_task_get_successor_relations (MrpTask *task);

Fetches a list of successor relations to task .

Parameters

task

an MrpTask

 

Returns

a list of successor relations to task .

[element-type Mrp.Relation][transfer none]


mrp_task_has_relation_to ()

gboolean
mrp_task_has_relation_to (MrpTask *task_a,
                          MrpTask *task_b);

Checks if a and b has a relation, i.e. if a is a predecessor or successor of b.

Parameters

task_a

an MrpTask

 

task_b

an MrpTask

 

Returns

TRUE if a and b has a relation


mrp_task_has_relation ()

gboolean
mrp_task_has_relation (MrpTask *task);

Checks if a task has any relations, i.e. predecessors or successors.

Parameters

task

an MrpTask

 

Returns

TRUE if there are any relations.


mrp_task_get_parent ()

MrpTask *
mrp_task_get_parent (MrpTask *task);

Fetches the parent of task .

Parameters

task

an MrpTask

 

Returns

the parent of task , or NULL if there is no parent.

[transfer none]


mrp_task_get_first_child ()

MrpTask *
mrp_task_get_first_child (MrpTask *task);

Fetches the first child of task .

Parameters

task

an MrpTask

 

Returns

the first child of task , or NULL if there are no children.

[transfer none]


mrp_task_get_next_sibling ()

MrpTask *
mrp_task_get_next_sibling (MrpTask *task);

Fetches the next sibling of task .

Parameters

task

an MrpTask

 

Returns

the next sibling of task , or NULL if there is no next sibling.

[transfer none]


mrp_task_get_n_children ()

guint
mrp_task_get_n_children (MrpTask *task);

Fetches the number of children task has.

Parameters

task

an MrpTask

 

Returns

the number of children task has


mrp_task_get_nth_child ()

MrpTask *
mrp_task_get_nth_child (MrpTask *task,
                        guint n);

Fetches the nth child of task .

Parameters

task

an MrpTask

 

n

the index of the child to get

 

Returns

the nth child of task , or NULL if there is no such child.

[transfer none]


mrp_task_get_position ()

gint
mrp_task_get_position (MrpTask *task);

Fetches the index or position of task among its siblings.

Parameters

task

an MrpTask

 

Returns

the position of task among its siblings.


mrp_task_get_start ()

mrptime
mrp_task_get_start (MrpTask *task);

Fetches the start time of task .

Parameters

task

an MrpTask

 

Returns

the start time of task .


mrp_task_get_work_start ()

mrptime
mrp_task_get_work_start (MrpTask *task);

Retrieves the first time where work is performed of task . This might be different from the start time, if the start time is during non-working time. In that case, the work start would be right after the non-working interval.

Parameters

task

an MrpTask

 

Returns

The work start time of task .


mrp_task_get_finish ()

mrptime
mrp_task_get_finish (MrpTask *task);

Fetches the finish time of task .

Parameters

task

an MrpTask

 

Returns

the finish time of task .


mrp_task_get_latest_start ()

mrptime
mrp_task_get_latest_start (MrpTask *task);

Retrieves the latest start time of task , i.e. the latest time the task can start without delaying the project.

Parameters

task

an MrpTask

 

Returns

The latest start time of task .


mrp_task_get_latest_finish ()

mrptime
mrp_task_get_latest_finish (MrpTask *task);

Retrieves the latest finish time of task , i.e. the latest time the task can finish without delaying the project.

Parameters

task

an MrpTask

 

Returns

The latest finish time of task .


mrp_task_get_duration ()

gint
mrp_task_get_duration (MrpTask *task);

Fetches the duration of task . This differs from the calendar duration that is retrieved by (finish - start).

Parameters

task

an MrpTask

 

Returns

The duration of task .


mrp_task_get_work ()

gint
mrp_task_get_work (MrpTask *task);

Retrieves the amount of work of task .

Parameters

task

an MrpTask

 

Returns

The work of task .


mrp_task_get_assignments ()

GList *
mrp_task_get_assignments (MrpTask *task);

Fetches a list of MrpAssignment.

Parameters

task

an MrpTask

 

Returns

the list of assignments.

[element-type Mrp.Assignment][transfer none]


mrp_task_get_assignment ()

MrpAssignment *
mrp_task_get_assignment (MrpTask *task,
                         MrpResource *resource);

retrieves the MrpAssignment associated with task and resource if the resource is assigned to task , or NULL if there is no such assignment.

Parameters

task

an MrpTask

 

resource

an MrpResource

 

Returns

The assignment if it exists, otherwise NULL.

[transfer none]


mrp_task_reset_constraint ()

void
mrp_task_reset_constraint (MrpTask *task);

Sets the contraint type to MRP_CONTRAINT_ASAP and notifies listeners.

Parameters

task

an MrpTask

 

mrp_task_get_cost ()

gfloat
mrp_task_get_cost (MrpTask *task);

Calculates the cost to complete task .

Parameters

task

an MrpTask

 

Returns

The cost to complete task .


mrp_task_get_assigned_resources ()

GList *
mrp_task_get_assigned_resources (MrpTask *task);

Fetches a list of resources assigned to task . The list needs to be freed with g_list_free() by caller.

Parameters

task

an MrpTask

 

Returns

A newly created list of MrpResource.

[element-type Mrp.Resource][transfer container]


mrp_task_compare ()

gint
mrp_task_compare (gconstpointer a,
                  gconstpointer b);

Compares the name of the tasks, by calling strcmp() on the names.

Parameters

a

an MrpTask

 

b

an MrpTask

 

Returns

the return value of strcmp (a->name, b->name).

Types and Values

MrpTaskPriv

typedef struct _MrpTaskPriv MrpTaskPriv;

MrpTask

typedef struct _MrpTask MrpTask;

MrpConstraint

typedef struct {
	MrpConstraintType type;
	mrptime           time;
} MrpConstraint;

enum MrpConstraintType

Members

MRP_CONSTRAINT_ASAP

   

MRP_CONSTRAINT_ALAP

   

MRP_CONSTRAINT_SNET

   

MRP_CONSTRAINT_FNLT

   

MRP_CONSTRAINT_MSO

   

Property Details

The “constraint” property

  “constraint”               MrpConstraint *

Task scheduling constraint.

Owner: MrpTask

Flags: Read / Write


The “critical” property

  “critical”                 gboolean

In critical path.

Owner: MrpTask

Flags: Read / Write

Default value: FALSE


The “duration” property

  “duration”                 int

Duration of the task.

Owner: MrpTask

Flags: Read / Write

Allowed values: >= -1

Default value: 0


The “finish” property

  “finish”                   glong

Task finish time.

Owner: MrpTask

Flags: Read

Allowed values: [0,2147483647]

Default value: 0


The “latest-finish” property

  “latest-finish”            glong

Latest task finish time.

Owner: MrpTask

Flags: Read

Allowed values: [0,2147483647]

Default value: 0


The “latest-start” property

  “latest-start”             glong

Latest task start time.

Owner: MrpTask

Flags: Read

Allowed values: [0,2147483647]

Default value: 0


The “name” property

  “name”                     char *

Name of the task.

Owner: MrpTask

Flags: Read / Write

Default value: ""


The “note” property

  “note”                     char *

Note attached to the task.

Owner: MrpTask

Flags: Read / Write

Default value: ""


The “percent-complete” property

  “percent-complete”         int

Percent completed of task.

Owner: MrpTask

Flags: Read / Write

Allowed values: [0,100]

Default value: 0


The “priority” property

  “priority”                 int

Priority of the task.

Owner: MrpTask

Flags: Read / Write

Allowed values: [0,9999]

Default value: 0


The “sched” property

  “sched”                    MrpTaskSched

Task scheduling type.

Owner: MrpTask

Flags: Read / Write

Default value: MRP_TASK_SCHED_FIXED_WORK


The “start” property

  “start”                    glong

Task Start time.

Owner: MrpTask

Flags: Read

Allowed values: [0,2147483647]

Default value: 0


The “type” property

  “type”                     MrpTaskType

Task type.

Owner: MrpTask

Flags: Read / Write

Default value: MRP_TASK_TYPE_NORMAL


The “work” property

  “work”                     int

Task work.

Owner: MrpTask

Flags: Read / Write

Allowed values: >= -1

Default value: 0

Signal Details

The “assignment-added” signal

void
user_function (MrpTask       *mrptask,
               MrpAssignment *arg1,
               gpointer       user_data)

Flags: Run Last


The “assignment-removed” signal

void
user_function (MrpTask       *mrptask,
               MrpAssignment *arg1,
               gpointer       user_data)

Flags: Run Last


The “child-added” signal

void
user_function (MrpTask *mrptask,
               gpointer user_data)

Flags: Run Last


The “child-removed” signal

void
user_function (MrpTask *mrptask,
               gpointer user_data)

Flags: Run Last


The “relation-added” signal

void
user_function (MrpTask *mrptask,
               gpointer arg1,
               gpointer user_data)

Flags: Run Last


The “relation-removed” signal

void
user_function (MrpTask *mrptask,
               gpointer arg1,
               gpointer user_data)

Flags: Run Last


The “task-moved” signal

void
user_function (MrpTask *mrptask,
               MrpTask *arg1,
               int      arg2,
               gpointer user_data)

Flags: Run Last