Skip to content
Snippets Groups Projects
CbmHistoServer.h 1.07 KiB
Newer Older
/* Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
   SPDX-License-Identifier: GPL-3.0-only
   Authors: Florian Uhlig [committer] */

#ifndef FAIRMQEXHISTOSERVER
#define FAIRMQEXHISTOSERVER

#include "FairMQDevice.h"

#include "THttpServer.h"
#include "TObjArray.h"
#include <thread>
Administrator's avatar
Administrator committed
#include <string>

//class FairMQExHistoCanvasDrawer;

Administrator's avatar
Administrator committed
class CbmHistoServer : public FairMQDevice {
public:
  CbmHistoServer();
Administrator's avatar
Administrator committed
  virtual ~CbmHistoServer();
Administrator's avatar
Administrator committed
  void UpdateHttpServer();
Administrator's avatar
Administrator committed
  /*
    void SetCanvasDrawer(std::unique_ptr<FairMQExHistoCanvasDrawer> canvasDrawer)
    {
        fCanvasDrawer = std::move(canvasDrawer);
    }
*/

Administrator's avatar
Administrator committed
protected:
  virtual void InitTask();
Administrator's avatar
Administrator committed
  bool ReceiveData(FairMQMessagePtr& msg, int index);
Administrator's avatar
Administrator committed
  virtual void PreRun();
Administrator's avatar
Administrator committed
  virtual void PostRun();
Administrator's avatar
Administrator committed
private:
  std::string fInputChannelName;
Administrator's avatar
Administrator committed
  TObjArray fArrayHisto;
Administrator's avatar
Administrator committed
  int fNMessages;
Administrator's avatar
Administrator committed
  THttpServer fServer;
Administrator's avatar
Administrator committed
  //    std::unique_ptr<FairMQExHistoCanvasDrawer> fCanvasDrawer;
Administrator's avatar
Administrator committed
  std::thread fThread;
  bool fStopThread;
Administrator's avatar
Administrator committed
  int FindHistogram(const std::string& name);