Skip to content

InscoperAPI/API/Base/Device/AbstractSubDevice.h

Namespaces

Name
Inscoper
Inscoper namespace.

Classes

Name
class Inscoper::AbstractSubDevice
AbstractSubDevice class implements custom sub-devices.

Source code

#ifndef ABSTRACTSUBDEVICE_H
#define ABSTRACTSUBDEVICE_H

#include <Base/Device/SubDeviceId.h>

#include <vector>

namespace Inscoper {

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

  explicit AbstractSubDevice(const Inscoper::SubDeviceId &subDeviceId);

  AbstractSubDevice(const Inscoper::SubDeviceId &subDeviceId, const std::string &recipeId);

  virtual ~AbstractSubDevice();

  virtual void setValue(const std::vector<unsigned char> &data) = 0;

  virtual std::vector<unsigned char> getValue() = 0;

  virtual void checkValue() = 0;

  virtual const Inscoper::SubDeviceId getSubDeviceId() const final;

  virtual const std::string &getRecipeId() const final;

private:
  Inscoper::SubDeviceId _subDeviceId;
  std::string _recipeId;
};

} // namespace Inscoper

#endif // ABSTRACTSUBDEVICE_H

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