#pragma once #include class IScanner; class IProtocol { public: // TODO: get rid of constructor or rename class explicit IProtocol(std::shared_ptr camera); virtual ~IProtocol() = default; public: virtual bool start() = 0; virtual void stop() = 0; protected: std::shared_ptr m_scanner; };