static void property_hash_recover (gpointer key, gpointer value, gpointer user_data) { PropertyCmdRemove *cmd = (PropertyCmdRemove*) user_data; g_assert (MRP_IS_TASK (key) || MRP_IS_RESOURCE (key)); g_assert (G_IS_VALUE (value)); mrp_object_set_property (key, cmd->property, value); }
static void mpp_write_resource (MrpParser *parser, xmlNodePtr parent, MrpResource *resource) { xmlNodePtr node; gchar *name, *short_name, *email; gchar *note; gint type, units; gfloat std_rate; /*, ovt_rate;*/ NodeEntry *group_entry; NodeEntry *resource_entry; MrpGroup *group; MrpCalendar *calendar; gint id; g_return_if_fail (MRP_IS_RESOURCE (resource)); node = xmlNewChild (parent, NULL, "resource", NULL); mrp_object_get (MRP_OBJECT (resource), "name", &name, "short_name", &short_name, "email", &email, "type", &type, "units", &units, "group", &group, "cost", &std_rate, "note", ¬e, /*"cost-overtime", &ovt_rate,*/ NULL); group_entry = g_hash_table_lookup (parser->group_hash, group); /* FIXME: should group really be able to be NULL? Should always * be default group? */ if (group_entry != NULL) { mpp_xml_set_int (node, "group", group_entry->id); } resource_entry = g_hash_table_lookup (parser->resource_hash, resource); mpp_xml_set_int (node, "id", resource_entry->id); xmlSetProp (node, "name", name); xmlSetProp (node, "short-name", short_name); mpp_xml_set_int (node, "type", type); mpp_xml_set_int (node, "units", units); xmlSetProp (node, "email", email); xmlSetProp (node, "note", note); mpp_xml_set_float (node, "std-rate", std_rate); /*mpp_xml_set_float (node, "ovt-rate", ovt_rate);*/ calendar = mrp_resource_get_calendar (resource); if (calendar) { id = GPOINTER_TO_INT (g_hash_table_lookup (parser->calendar_hash, calendar)); if (id) { mpp_xml_set_int (node, "calendar", id); } } mpp_write_custom_properties (parser, node, MRP_OBJECT (resource)); g_free (name); g_free (short_name); g_free (email); g_free (note); }