- type_t msg_process = getContainerType("MSG_PROCESS", new->type);
- type_t state = getStateType ("MSG_PROCESS_STATE", msg_process);
- getValue ("executing", "0 1 0", state);
- getValue ("suspend", "1 0 1", state);
- getValue ("sleep", "1 1 0", state);
- getValue ("receive", "1 0 0", state);
- getValue ("send", "0 0 1", state);
- getValue ("task_execute", "0 1 1", state);
- getLinkType ("MSG_PROCESS_LINK", getRootType(), msg_process, msg_process);
- getLinkType ("MSG_PROCESS_TASK_LINK", getRootType(), msg_process, msg_process);
- }
-
- if (TRACE_msg_task_is_enabled()) {
- type_t msg_task = getContainerType ("MSG_TASK", new->type);
- type_t state = getStateType ("MSG_TASK_STATE", msg_task);
- getValue ("MSG_task_execute", "0 1 0", state);
- getValue ("created", "1 1 0", state);
- getLinkType ("MSG_TASK_LINK", getRootType(), msg_task, msg_task);
+ type_t msg_process = PJ_type_get_or_null ("MSG_PROCESS", new->type);
+ if (msg_process == NULL){
+ msg_process = PJ_type_container_new("MSG_PROCESS", new->type);
+ type_t state = PJ_type_state_new ("MSG_PROCESS_STATE", msg_process);
+ PJ_value_new ("suspend", "1 0 1", state);
+ PJ_value_new ("sleep", "1 1 0", state);
+ PJ_value_new ("receive", "1 0 0", state);
+ PJ_value_new ("send", "0 0 1", state);
+ PJ_value_new ("task_execute", "0 1 1", state);
+ PJ_type_link_new ("MSG_PROCESS_LINK", PJ_type_get_root(), msg_process, msg_process);
+ PJ_type_link_new ("MSG_PROCESS_TASK_LINK", PJ_type_get_root(), msg_process, msg_process);
+ }