# Base solver

class CBaseSolver

  Base solver.

  Subclassed by CAgglomerationSolver

  Public Functions

  ESolverTypes GetType() const

    Returns type to which belongs this solver.

    Returns:

      Solver’s type.

  std::string GetName() const

    Returns name of solver.

    Returns:

      Solver’s name.

  std::string GetAuthorName() const

    Returns name of the solver’s author.

    Returns:

      Author’s type.

  size_t GetVersion() const

    Returns version of solver.

    Returns:

      Solver’s version.

  std::string GetUniqueID() const

    Returns string key, unique for all solvers.

    Returns:

      Solver’s unique ID.

  std::string GetHelpLink() const

    Returns the help link of the solver.

    Returns:

      Help link of the solver.

  void SetName(const std::string &_name)

    Sets the name of the solver.

    Parameters:

      _name – Solver’s name.

  void SetAuthorName(const std::string &_author)

    Sets the name of solver’s author.

    Parameters:

      _author – Solver’s author.

  void SetVersion(size_t _version)

    Sets the version of the solver.

    Parameters:

      _version – Solver’s version.

  void SetUniqueID(const std::string &_id)

    Sets the unique identifier of the solver.

    Parameters:

      _id – Solver’s unique ID.

  void SetHelpLink(const std::string &_helpLink)

    Sets the help link of the solver.

    Parameters:

      _helpLink – Help link of the solver.

  virtual void CreateBasicInfo() = 0

    Will be called once during creation of the solver (name, author, key, version).

  virtual void Initialize()

    Will be called to initialize the solver.

  virtual void Finalize()

    Will be called once after the whole simulation is finished.

  virtual void SaveState()

    Will be called when storing of current internal state is needed.

  virtual void LoadState()

    Will be called when loading of last stored internal state is needed.