#ifndef _LIVOX_GEN1_PCLOUD_INTENSITY_STIMULUS_BUFFER_H #define _LIVOX_GEN1_PCLOUD_INTENSITY_STIMULUS_BUFFER_H #include #include #include #include namespace smo { namespace stim_buff { // Forward declaration class StimulusProducer; /** * PcloudIntensityStimulusBuffer is a specialized StimulusBuffer for intensity point cloud data. */ class PcloudIntensityStimulusBuffer : public StimulusBuffer { public: explicit PcloudIntensityStimulusBuffer( StimulusProducer& parent, const std::shared_ptr &deviceAttachmentSpec, int histbuffMs, const StagingBuffer::IOEngineConstraints& inputEngineConstraints, const StagingBuffer::IOEngineConstraints& outputEngineConstraints, const SmoCallbacks& callbacks, cl_mem_flags flags) : StimulusBuffer( parent, deviceAttachmentSpec, histbuffMs, inputEngineConstraints, outputEngineConstraints, callbacks, flags) { intrin::validateNoIntrinParamsOnQualeIface( deviceAttachmentSpec->qualeIfaceApi, deviceAttachmentSpec->qualeIfaceApiParams); } ~PcloudIntensityStimulusBuffer() = default; // Non-copyable, non-movable: inherited pinner lifetime is instance-bound PcloudIntensityStimulusBuffer( const PcloudIntensityStimulusBuffer&) = delete; PcloudIntensityStimulusBuffer& operator=( const PcloudIntensityStimulusBuffer&) = delete; PcloudIntensityStimulusBuffer( PcloudIntensityStimulusBuffer&&) = delete; PcloudIntensityStimulusBuffer& operator=( PcloudIntensityStimulusBuffer&&) = delete; }; } // namespace stim_buff } // namespace smo #endif // _LIVOX_GEN1_PCLOUD_INTENSITY_STIMULUS_BUFFER_H