Skip to content

InscoperAPI/API/Base/Config/SubDeviceConfig.h

Namespaces

Name
Inscoper
Inscoper namespace.

Classes

Name
class Inscoper::SubDeviceConfig
SubDeviceConfig class provides required information for sub-device configuration.

Source code

#ifndef SUBDEVICECONFIG_H
#define SUBDEVICECONFIG_H

#include <Base/Config/ParamConfig.h>
#include <Base/Description/ESubDeviceLabel.h>
#include <Base/Device/EFunctionType.h>

#include <NBO/NBO/ENBOType.h>

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

namespace Inscoper {

class INSCOPER_EXPORT SubDeviceConfig {
public:
  SubDeviceConfig();

  void fromXML(Inscoper::XMLNode &subDeviceNode) INSCOPER_EXCEPTION;

  void toXML(Inscoper::XMLNode &xmlParent) INSCOPER_EXCEPTION;

  const std::string &getId() const;

  void setId(const std::string &id);

  unsigned short getTag() const;

  void setTag(unsigned short tag);

  Inscoper::NBO::ENBOType getNBOType() const;

  bool hasNBOType() const;

  void setNBOType(Inscoper::NBO::ENBOType nboType);

  void unsetNBOType();

  bool isPostInit() const;

  void setPostInit(bool postInit);

  const std::string &getRecipeId() const;

  void setRecipeId(const std::string &recipeId);

  const std::vector<Inscoper::ParamConfigPtr> &getParams() const;

  Inscoper::ParamConfigPtr getParam(unsigned short tag) const;

  void setParams(const std::vector<Inscoper::ParamConfigPtr> &params);

  void addParam(const Inscoper::ParamConfigPtr &param);

  const std::vector<Inscoper::ESubDeviceLabel> &getLabelList() const;

private:
  std::string _id;
  unsigned short _tag;
  Inscoper::NBO::ENBOType _nboType;
  bool _hasNBOType;
  std::string _recipeId;
  bool _postInit;
  std::vector<ParamConfigPtr> _params;
  std::vector<Inscoper::ESubDeviceLabel> _labelList;
};

typedef std::shared_ptr<SubDeviceConfig> SubDeviceConfigPtr;

} // namespace Inscoper

#endif // SUBDEVICECONFIG_H

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