myconetwork.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * mycoagent.c
  3. *
  4. * This is an example agent that showcases the use of mycorrhiza.
  5. */
  6. #include "../src/myco-agent.c"
  7. #include "../src/myco-serialize.c"
  8. int main() {
  9. char *agent_name = "DOMAIN1_MYAGENT";
  10. int agent_message_queue_id = myco_agent_register(agent_name);
  11. // MYCO create
  12. // #MYCO create("RESOURCE_1", 1024, transactional)
  13. char *resource_name = "RESOURCE_1";
  14. int resource_size = 1024;
  15. void *resource_pointer = myco_agent_register_resource(agent_message_queue_id, agent_name, resource_name, RESOURCE_TRANSACTIONAL, getpid(), resource_size);
  16. // View available resources
  17. myco_agent_request_resource_list(agent_message_queue_id);
  18. printf("Sleeping for 10 seconds...\n");
  19. sleep(10);
  20. //TODO: Bandaid solution. This needs to be in the daemon later on.
  21. printf("Sending data.\n");
  22. struct sockaddr_in address;
  23. int mysocket = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0);
  24. address.sin_family = AF_INET;
  25. address.sin_port = htons (15001);
  26. inet_aton ("192.168.0.10", &address.sin_addr);
  27. connect (mysocket, (struct sockaddr *) &address, sizeof (address));
  28. // Handle indexer
  29. char tcp_message[resource_size];
  30. myco_serialize(tcp_message, resource_pointer, resource_size);
  31. send(socket, tcp_message, strlen(tcp_message), 0);
  32. // At the end of its runtime the agent unregisters with the daemon.
  33. myco_agent_unregister(agent_name, agent_message_queue_id);
  34. return EXIT_SUCCESS;
  35. }