Discoverer.vala 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using LibPeer.Networks.Simulation;
  2. using LibPeer.Protocols.Mx2;
  3. using LibPeer.Protocols.Aip;
  4. using LibPeer.Networks;
  5. using Gee;
  6. namespace Discoverer {
  7. class DiscoverWorker : Object {
  8. private Muxer muxer = new Muxer();
  9. private Network network;
  10. private ApplicationInformationProtocol aip;
  11. private ApplicationInformation app_info;
  12. private Instance app_instance;
  13. private int id;
  14. public DiscoverWorker(int id, Conduit conduit) throws Error, IOError {
  15. this.id = id;
  16. network = conduit.get_interface();
  17. network.bring_up();
  18. aip = new ApplicationInformationProtocol(muxer);
  19. aip.add_network(network);
  20. app_instance = new Instance("discovery_toy");
  21. app_info = new ApplicationInformation.from_instance(app_instance);
  22. app_info.new_group_peer.connect(group_peers_found);
  23. aip.add_application (app_info);
  24. }
  25. private void group_peers_found() {
  26. aip.find_application_instance(app_info).on_answer.connect(found_peer);
  27. }
  28. private void found_peer(InstanceInformation info) {
  29. print("I found a peer!\n");
  30. }
  31. }
  32. }