MrpTask

MrpTask — represents a task in the project.

Functions

Properties

MrpConstraint * constraint Read / Write
gboolean critical Read / Write
gint duration Read / Write
glong finish Read
glong latest-finish Read
glong latest-start Read
gchar * name Read / Write
gchar * note Read / Write
gint percent-complete Read / Write
gint priority Read / Write
MrpTaskSched sched Read / Write
glong start Read
MrpTaskType type Read / Write
gint 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.


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.


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


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


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


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


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..


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.


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.


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.


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.


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.


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.


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;

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


MrpTask

typedef struct _MrpTask MrpTask;

Object representing a task in the project.


MrpConstraint

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

A struct representing a scheduling constraint on a task.


enum MrpConstraintType

The type of constraint for the task. The default is MRP_CONSTRAINT_ASAP.

Members

MRP_CONSTRAINT_ASAP

as soon as possible

 

MRP_CONSTRAINT_ALAP

as late as possible (unimplemented)

 

MRP_CONSTRAINT_SNET

start no eariler than

 

MRP_CONSTRAINT_FNLT

finish no later than (unimplemented)

 

MRP_CONSTRAINT_MSO

must start on

 

Property Details

The “constraint” property

  “constraint”               MrpConstraint *

Task scheduling constraint.

Flags: Read / Write


The “critical” property

  “critical”                 gboolean

In critical path.

Flags: Read / Write

Default value: FALSE


The “duration” property

  “duration”                 gint

Duration of the task.

Flags: Read / Write

Allowed values: >= -1

Default value: 0


The “finish” property

  “finish”                   glong

Task finish time.

Flags: Read

Allowed values: >= 0

Default value: 0


The “latest-finish” property

  “latest-finish”            glong

Latest task finish time.

Flags: Read

Allowed values: >= 0

Default value: 0


The “latest-start” property

  “latest-start”             glong

Latest task start time.

Flags: Read

Allowed values: >= 0

Default value: 0


The “name” property

  “name”                     gchar *

Name of the task.

Flags: Read / Write

Default value: ""


The “note” property

  “note”                     gchar *

Note attached to the task.

Flags: Read / Write

Default value: ""


The “percent-complete” property

  “percent-complete”         gint

Percent completed of task.

Flags: Read / Write

Allowed values: [0,100]

Default value: 0


The “priority” property

  “priority”                 gint

Priority of the task.

Flags: Read / Write

Allowed values: [0,9999]

Default value: 0


The “sched” property

  “sched”                    MrpTaskSched

Task scheduling type.

Flags: Read / Write

Default value: MRP_TASK_SCHED_FIXED_WORK


The “start” property

  “start”                    glong

Task Start time.

Flags: Read

Allowed values: >= 0

Default value: 0


The “type” property

  “type”                     MrpTaskType

Task type.

Flags: Read / Write

Default value: MRP_TASK_TYPE_NORMAL


The “work” property

  “work”                     gint

Task work.

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)

Parameters

mrptask

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “assignment-removed” signal

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

Parameters

mrptask

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “child-added” signal

void
user_function (MrpTask *mrptask,
               gpointer user_data)

Parameters

mrptask

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “child-removed” signal

void
user_function (MrpTask *mrptask,
               gpointer user_data)

Parameters

mrptask

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “relation-added” signal

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

Parameters

mrptask

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “relation-removed” signal

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

Parameters

mrptask

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “task-moved” signal

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

Parameters

mrptask

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last