void FaceUpdateCommand::validateRequest(const ControlParameters& parameters) const { this->ControlCommand::validateRequest(parameters); if (parameters.hasFlags() != parameters.hasMask()) { BOOST_THROW_EXCEPTION(ArgumentError("Flags must be accompanied by Mask")); } }
void RibRegisterCommand::applyDefaultsToRequest(ControlParameters& parameters) const { if (!parameters.hasFaceId()) { parameters.setFaceId(0); } if (!parameters.hasOrigin()) { parameters.setOrigin(ROUTE_ORIGIN_APP); } if (!parameters.hasCost()) { parameters.setCost(0); } if (!parameters.hasFlags()) { parameters.setFlags(ROUTE_FLAG_CHILD_INHERIT); } }
void ControlCommand::FieldValidator::validate(const ControlParameters& parameters) const { const std::vector<bool>& presentFields = parameters.getPresentFields(); for (size_t i = 0; i < CONTROL_PARAMETER_UBOUND; ++i) { bool isPresent = presentFields[i]; if (m_required[i]) { if (!isPresent) { BOOST_THROW_EXCEPTION(ArgumentError(CONTROL_PARAMETER_FIELD[i] + " is required but missing")); } } else if (isPresent && !m_optional[i]) { BOOST_THROW_EXCEPTION(ArgumentError(CONTROL_PARAMETER_FIELD[i] + " is forbidden but present")); } } if (m_optional[CONTROL_PARAMETER_FLAGS] && m_optional[CONTROL_PARAMETER_MASK]) { if (parameters.hasFlags() != parameters.hasMask()) { BOOST_THROW_EXCEPTION(ArgumentError("Flags must be accompanied by Mask")); } } }
virtual void applyDefaultsToRequest(ControlParameters& parameters) const { if (!parameters.hasFaceId()) { parameters.setFaceId(0); } if (!parameters.hasOrigin()) { parameters.setOrigin(ROUTE_ORIGIN_APP); } if (!parameters.hasCost()) { parameters.setCost(0); } if (!parameters.hasFlags()) { parameters.setFlags(ROUTE_FLAG_CHILD_INHERIT); } if (!parameters.hasExpirationPeriod()) { if (parameters.getFaceId() == 0) { parameters.setExpirationPeriod(time::milliseconds::max()); } else { parameters.setExpirationPeriod(time::hours(1)); } } }