You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.cc 1.3 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "../build/dora-node-api.h"
  2. #include <iostream>
  3. #include <vector>
  4. int main()
  5. {
  6. std::cout << "HELLO FROM C++" << std::endl;
  7. unsigned char counter = 0;
  8. auto dora_node = init_dora_node();
  9. for (int i = 0; i < 20; i++)
  10. {
  11. auto event = dora_node.events->next();
  12. auto ty = event_type(event);
  13. if (ty == DoraEventType::AllInputsClosed)
  14. {
  15. break;
  16. }
  17. else if (ty == DoraEventType::Input)
  18. {
  19. auto input = event_as_input(std::move(event));
  20. counter += 1;
  21. std::cout << "Received input " << std::string(input.id) << " (counter: " << (unsigned int)counter << ")" << std::endl;
  22. std::vector<unsigned char> out_vec{counter};
  23. rust::Slice<const uint8_t> out_slice{out_vec.data(), out_vec.size()};
  24. auto result = send_output(dora_node.send_output, "counter", out_slice);
  25. auto error = std::string(result.error);
  26. if (!error.empty())
  27. {
  28. std::cerr << "Error: " << error << std::endl;
  29. return -1;
  30. }
  31. }
  32. else
  33. {
  34. std::cerr << "Unknown event type " << static_cast<int>(ty) << std::endl;
  35. }
  36. }
  37. std::cout << "GOODBYE FROM C++ node (using Rust API)" << std::endl;
  38. return 0;
  39. }