Skip to content

InscoperAPI/API/Base/Diag/Constraint.h

Namespaces

Name
Inscoper
Inscoper namespace.

Classes

Name
class Inscoper::Constraint
Constraint class defines limits and valid values for a parameter.

Source code

#ifndef CONSTRAINT_H
#define CONSTRAINT_H

#include <Base/Device/EParamType.h>
#include <Global.h>

#include <map>
#include <memory>
#include <string>
#include <vector>

namespace Inscoper {
class INSCOPER_EXPORT Constraint {
public:
#ifndef SWIG
  Constraint(Constraint const &) = delete;
  Constraint(Constraint &&) = delete;
  Constraint &operator=(Constraint const &) = delete;
  Constraint &operator=(Constraint &&) = delete;
#endif

  Constraint() = default;

  virtual ~Constraint() = default;

  virtual bool isReadOnly() INSCOPER_EXCEPTION = 0;

  virtual Inscoper::EParamType getType() INSCOPER_EXCEPTION = 0;

  virtual bool hasMin() INSCOPER_EXCEPTION = 0;

  virtual double getMin() INSCOPER_EXCEPTION = 0;

  virtual bool hasMax() INSCOPER_EXCEPTION = 0;

  virtual double getMax() INSCOPER_EXCEPTION = 0;

  virtual bool hasStep() INSCOPER_EXCEPTION = 0;

  virtual double getStep() INSCOPER_EXCEPTION = 0;

  virtual bool hasKeyList() INSCOPER_EXCEPTION = 0;

  virtual bool hasValueList() INSCOPER_EXCEPTION = 0;

  virtual const std::vector<std::string> getValueList() INSCOPER_EXCEPTION = 0;

  virtual const std::vector<std::string> getKeyList() INSCOPER_EXCEPTION = 0;

  virtual Inscoper::EParamType getKeyType() INSCOPER_EXCEPTION = 0;

  virtual const std::string getValue(const std::string &key) INSCOPER_EXCEPTION = 0;

  virtual bool hasSubConstraint(const std::string &property) INSCOPER_EXCEPTION = 0;

  virtual std::shared_ptr<Constraint> getSubConstraint(const std::string &property) INSCOPER_EXCEPTION = 0;

  virtual std::map<std::string, std::shared_ptr<Inscoper::Constraint>> getSubConstraintMap() = 0;

  virtual std::shared_ptr<Constraint> cloneConstraint() = 0;
};

typedef std::shared_ptr<Constraint> ConstraintPtr;

} // namespace Inscoper

#endif // CONSTRAINT_H

Updated on 2026-09-03 at 12:14:17 +0200