00001 #ifndef DATA_STREAMER_TEMPLATE_H 00002 #define DATA_STREAMER_TEMPLATE_H 00003 00004 #include <QtPlugin> 00005 #include <QMenu> 00006 #include <mutex> 00007 #include "PlotJuggler/plotdata.h" 00008 00009 00010 class DataStreamer{ 00011 00012 public: 00013 DataStreamer(): _menu(NULL){} 00014 00015 virtual PlotDataMap& getDataMap() = 0; 00016 00017 virtual bool start(QString& default_configuration) = 0; 00018 00019 virtual void shutdown() = 0; 00020 00021 virtual void enableStreaming(bool enable) = 0; 00022 00023 virtual bool isStreamingEnabled() const = 0; 00024 00025 virtual ~DataStreamer() {} 00026 00027 virtual const char* name() const = 0; 00028 00029 virtual bool isDebugPlugin() { return false; } 00030 00031 virtual void setParentMenu(QMenu* menu) { _menu = menu; } 00032 00033 virtual QWidget* embeddedWidget() { return nullptr; } 00034 00035 protected: 00036 QMenu* _menu; 00037 }; 00038 00039 QT_BEGIN_NAMESPACE 00040 00041 #define DataStream_iid "com.icarustechnology.PlotJuggler.DataStreamer" 00042 00043 Q_DECLARE_INTERFACE(DataStreamer, DataStream_iid) 00044 00045 QT_END_NAMESPACE 00046 00047 00048 #endif 00049