3 #include "xbt/automaton.h"
4 #include "xbt/automatonparse_promela.h"
5 #include "test_snapshot.h"
9 XBT_LOG_NEW_DEFAULT_CATEGORY(test_snapshot, "my log messages");
15 xbt_dynar_t d1 = NULL;
16 xbt_dynar_t d2 = NULL;
28 XBT_INFO("*** Check ***");
30 XBT_INFO("Dynar d1 (%p -> %p) length : %lu", &d1, d1, xbt_dynar_length(d1));
31 unsigned int cursor = 0;
33 xbt_dynar_foreach(d1, cursor, elem){
34 XBT_INFO("Elem in dynar d1 : %s", elem);
37 XBT_INFO("Dynar d1 NULL");
40 XBT_INFO("Dynar d2 (%p -> %p) length : %lu", &d2, d2, xbt_dynar_length(d2));
41 unsigned int cursor = 0;
43 xbt_dynar_foreach(d2, cursor, elem){
44 XBT_INFO("Elem in dynar d2 : %s", elem);
47 XBT_INFO("Dynar d2 NULL");
52 int coordinator(int argc, char *argv[])
58 MSG_task_receive(&task, "coordinator");
59 const char *kind = MSG_task_get_name(task);
63 if (!strcmp(kind, "request")) {
64 char *req = MSG_task_get_data(task);
65 m_task_t answer = MSG_task_create("received", 0, 1000, NULL);
66 MSG_task_send(answer, req);
68 XBT_INFO("End of coordinator");
76 int client(int argc, char *argv[])
78 int my_pid = MSG_process_get_PID(MSG_process_self());
80 char *my_mailbox = bprintf("%s", argv[1]);
84 XBT_INFO("Ask the request");
85 MSG_task_send(MSG_task_create("request", 0, 1000, my_mailbox), "coordinator");
93 MSG_task_receive(&task, my_mailbox);
94 MSG_task_destroy(task);
98 XBT_INFO("*** Update ***");
102 d2 = xbt_dynar_new(sizeof(char *), NULL);
103 XBT_INFO("Dynar d2 : %p -> %p", &d2, d2);
104 char *c2 = strdup("boooooooo");
105 xbt_dynar_push(d2, &c2);
111 MSG_process_sleep(1);
112 MSG_task_send(MSG_task_create("release", 0, 1000, NULL), "coordinator");
116 MSG_process_sleep(my_pid);
124 int main(int argc, char *argv[])
127 d1 = xbt_dynar_new(sizeof(char *), NULL);
128 XBT_DEBUG("Dynar d1 : %p -> %p", &d1, d1);
129 c1 = strdup("coucou");
130 xbt_dynar_push(d1, &c1);
131 xbt_dynar_push(d1, &c1);
135 automaton = get_automaton();
136 xbt_new_propositional_symbol(automaton,"r", &predR);
137 xbt_new_propositional_symbol(automaton,"cs", &predCS);
139 MSG_global_init(&argc, argv);
140 MSG_create_environment("../msg_platform.xml");
141 MSG_function_register("coordinator", coordinator);
142 MSG_function_register("client", client);
143 MSG_launch_application("deploy_test_snapshot.xml");
144 MSG_main_liveness(automaton);