Class NegotiatingRouteValidator::Generator

Nested Relationships

This class is a nested type of Class NegotiatingRouteValidator.

Class Documentation

class rmf_traffic::agv::NegotiatingRouteValidator::Generator

The Generator class begins the creation of NegotiatingRouteValidator instances. NegotiatingRouteValidator may be able to brach in multiple dimensions because of the rollout alternatives that are provided during a rejection.

Public Functions

Generator(schedule::Negotiation::Table::ViewerPtr viewer, rmf_traffic::Profile profile)

Constructor

This version is safe to use even if the participant being negotiated for is not in the schedule yet.

Parameters
  • [in] viewer: A viewer for the Negotiation Table that the generated validators are concerned with

  • [in] profile: The profile of the participant whose routes are being validated.

Generator(schedule::Negotiation::Table::ViewerPtr viewer)

Constructor

This version looks for the participant in the schedule to find its profile.

Parameters
  • [in] table: A viewer for the Negotiation Table that the generated validators are concerned with

Generator &ignore_unresponsive(bool val = true)

Toggle whether to ignore “unresponsive” (also called “read-only”) schedule participants when determining conflicts. By default, conflicts with unresponsive participants will be caught.

Generator &ignore_bystanders(bool val = true)

Toggle whether to ignore “bystanders” which means schedule participants that are not being involved in the negotiation. By default, conflicts with bystanders will be caught.

NegotiatingRouteValidator begin() const

Start with a NegotiatingRouteValidator that will use all the most preferred alternatives from every participant.

std::vector<rmf_utils::clone_ptr<NegotiatingRouteValidator>> all() const

Get all the Negotiating Route Validators that can be generated.

const std::vector<schedule::ParticipantId> &alternative_sets() const

Get the set of participants who have specified what their available rollouts are.

std::size_t alternative_count(schedule::ParticipantId participant) const

Get the number of alternative rollouts for the specified participant. This function will throw an excpetion if participant does not offer an alternative set.