disconnect_options.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // disconnect_options.cpp
  2. #include "mqtt/disconnect_options.h"
  3. #include <utility>
  4. #include <cstring>
  5. namespace mqtt {
  6. /////////////////////////////////////////////////////////////////////////////
  7. const MQTTAsync_disconnectOptions disconnect_options::DFLT_C_STRUCT = MQTTAsync_disconnectOptions_initializer;
  8. disconnect_options::disconnect_options() : opts_(DFLT_C_STRUCT)
  9. {
  10. }
  11. disconnect_options::disconnect_options(const disconnect_options& opt)
  12. : opts_(opt.opts_), tok_(opt.tok_)
  13. {
  14. }
  15. disconnect_options::disconnect_options(disconnect_options&& opt)
  16. : opts_(opt.opts_), tok_(std::move(opt.tok_))
  17. {
  18. }
  19. disconnect_options& disconnect_options::operator=(const disconnect_options& opt)
  20. {
  21. opts_ = opt.opts_;
  22. tok_ = opt.tok_;
  23. return *this;
  24. }
  25. disconnect_options& disconnect_options::operator=(disconnect_options&& opt)
  26. {
  27. opts_ = opt.opts_;
  28. tok_ = std::move(opt.tok_);
  29. return *this;
  30. }
  31. void disconnect_options::set_token(const token_ptr& tok, int mqttVersion)
  32. {
  33. tok_ = tok;
  34. opts_.context = tok_.get();
  35. opts_.onSuccess = nullptr;
  36. opts_.onFailure = nullptr;
  37. opts_.onSuccess5 = nullptr;
  38. opts_.onFailure5 = nullptr;
  39. if (tok) {
  40. if (mqttVersion >= MQTTVERSION_5) {
  41. opts_.onSuccess5 = &token::on_success5;
  42. opts_.onFailure5 = &token::on_failure5;
  43. }
  44. else {
  45. opts_.onSuccess = &token::on_success;
  46. opts_.onFailure = &token::on_failure;
  47. }
  48. }
  49. }
  50. /////////////////////////////////////////////////////////////////////////////
  51. // end namespace 'mqtt'
  52. }