综合平台编程器项目的远程存储
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

41 lignes
923 B

  1. #include "register_monitor_model.h"
  2. #include <algorithm>
  3. const std::vector<RegisterAddress> &RegisterMonitorModel::addresses() const
  4. {
  5. return addresses_;
  6. }
  7. bool RegisterMonitorModel::contains(const RegisterAddress &address) const
  8. {
  9. return std::find(addresses_.begin(), addresses_.end(), address) != addresses_.end();
  10. }
  11. bool RegisterMonitorModel::add(const RegisterAddress &address)
  12. {
  13. if (!address.isValid() || contains(address)
  14. || addresses_.size() >= kMaximumItemCount)
  15. {
  16. return false;
  17. }
  18. addresses_.push_back(address);
  19. return true;
  20. }
  21. bool RegisterMonitorModel::remove(const RegisterAddress &address)
  22. {
  23. const auto position = std::find(addresses_.begin(), addresses_.end(), address);
  24. if (position == addresses_.end())
  25. {
  26. return false;
  27. }
  28. addresses_.erase(position);
  29. return true;
  30. }
  31. void RegisterMonitorModel::clear()
  32. {
  33. addresses_.clear();
  34. }