Program Listing for File NegotiationModel.hpp

Return to documentation for file (src/NegotiationModel.hpp)

#ifndef RMF_VISUALIZATION_RVIZ2_PLUGINS__SRC__NEGOTIATION_MODEL_HPP
#define RMF_VISUALIZATION_RVIZ2_PLUGINS__SRC__NEGOTIATION_MODEL_HPP

#include <vector>
#include <map>
#include <QTableWidget>

class NegotiationModel
{
public:
  NegotiationModel(QTableWidget* _negotiation_view);
  void add_negotiation(
    uint64_t negotiation_id,
    const std::vector<uint64_t>& participants);
  void remove(
    uint64_t negotiation_id);
  void get_selected_id(std::vector<uint64_t>& negotiations);
private:
  QTableWidget* _negotiation_view;
  //TODO(arjo): Implement custom class to track state/
  //Uses map to maintain sorted order.
  std::map<uint64_t, std::vector<uint64_t>> _model;
  void render();
  uint64_t get_negotiation_id(std::size_t row_number);
  QString render_participants(uint64_t conflict_version);
};

#endif // RMF_VISUALIZATION_RVIZ2_PLUGINS__SRC__NEGOTIATION_MODEL_HPP