test-server.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "kiro-camera-server.h"
  2. static KiroContinueFlag
  3. receive_callback (KiroMessageStatus *status, gpointer user_data)
  4. {
  5. g_message ("Received a message of type: %u", status->message->msg);
  6. *(gboolean *)user_data = TRUE;
  7. return KIRO_CALLBACK_CONTINUE;
  8. }
  9. int main (int argc, char **argv)
  10. {
  11. GError *error = NULL;
  12. KiroMessenger *messenger = kiro_messenger_new ();
  13. gboolean flag = FALSE;
  14. kiro_messenger_add_receive_callback (messenger, receive_callback, &flag);
  15. gulong rank = 0;
  16. kiro_messenger_connect (messenger, "127.0.0.1", "60010", &rank, &error);
  17. if (error) {
  18. kiro_messenger_free (messenger);
  19. g_error ("Oh shit! (%s)", error->message);
  20. }
  21. while (!flag) {};
  22. flag = FALSE;
  23. GVariant *tmp = g_variant_new ("i", UCA_CAMERA_TRIGGER_SOURCE_SOFTWARE);
  24. gsize data_size = g_variant_get_size (tmp);
  25. PropUpdate *test = g_malloc0 (sizeof (PropUpdate) + data_size);
  26. test->id = 11;
  27. test->type[0] = 'i';
  28. test->size = data_size;
  29. g_variant_store (tmp, test->val);
  30. //g_object_unref (tmp);
  31. KiroMessage message;
  32. message.peer_rank = rank;
  33. message.msg = KIROCS_UPDATE;
  34. message.payload = test;
  35. message.size = sizeof (PropUpdate) + data_size;
  36. kiro_messenger_send_blocking (messenger, &message, &error);
  37. if (error) {
  38. kiro_messenger_free (messenger);
  39. g_error ("Oh shit! (%s)", error->message);
  40. }
  41. message.msg = KIROCS_EXIT;
  42. message.size = 0;
  43. message.payload = NULL;
  44. kiro_messenger_send_blocking (messenger, &message, &error);
  45. if (error) {
  46. kiro_messenger_free (messenger);
  47. g_error ("Oh shit! (%s)", error->message);
  48. }
  49. kiro_messenger_free (messenger);
  50. return 0;
  51. }