02-subscribe-qos0.cpp 957 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include <mosquittopp.h>
  2. static int run = -1;
  3. class mosquittopp_test : public mosqpp::mosquittopp
  4. {
  5. public:
  6. mosquittopp_test(const char *id);
  7. void on_connect(int rc);
  8. void on_disconnect(int rc);
  9. void on_subscribe(int mid, int qos_count, const int *granted_qos);
  10. };
  11. mosquittopp_test::mosquittopp_test(const char *id) : mosqpp::mosquittopp(id)
  12. {
  13. }
  14. void mosquittopp_test::on_connect(int rc)
  15. {
  16. if(rc){
  17. exit(1);
  18. }else{
  19. subscribe(NULL, "qos0/test", 0);
  20. }
  21. }
  22. void mosquittopp_test::on_disconnect(int rc)
  23. {
  24. run = rc;
  25. }
  26. void mosquittopp_test::on_subscribe(int mid, int qos_count, const int *granted_qos)
  27. {
  28. disconnect();
  29. }
  30. int main(int argc, char *argv[])
  31. {
  32. struct mosquittopp_test *mosq;
  33. int port = atoi(argv[1]);
  34. mosqpp::lib_init();
  35. mosq = new mosquittopp_test("subscribe-qos0-test");
  36. mosq->connect("localhost", port, 60);
  37. while(run == -1){
  38. mosq->loop();
  39. }
  40. delete mosq;
  41. delete mosq;
  42. mosqpp::lib_cleanup();
  43. return run;
  44. }