odin-detector/odin-data

View on GitHub
cpp/frameProcessor/include/FrameProcessorApp.h

Summary

Maintainability
Test Coverage
/*
 * FrameProcessorApp.h
 *
 *  Created on: Dec 18. 2020
 *      Author: Tim Nicholls, STFC Detector Systems Software Group
 */

#ifndef FRAMEPROCESSORAPP_H_
#define FRAMEPROCESSORAPP_H_

#include "DebugLevelLogger.h"
#include "FrameProcessorController.h"

namespace FrameProcessor
{
class FrameProcessorApp
{

public:

  FrameProcessorApp();
  ~FrameProcessorApp();

  int parse_arguments(int argc, char** argv);
  void configure_controller(OdinData::IpcMessage& config_msg);
  int run(void);
  static void stop(void);

private:

  LoggerPtr logger_;                    //!< Log4CXX logger instance pointer
  static boost::shared_ptr<FrameProcessorController> controller_; //!< FrameProcessor controller object

  // Command line options
  unsigned int io_threads_;  //!< Number of IO threads for IPC channels
  std::string ctrl_channel_endpoint_;  //!< IPC channel endpoint for control communication with other processes
  std::string config_file_; //!< Full path to JSON configuration file

};

} // namespace FrameProcessor
#endif /* FRAMEPROCESSOR_APP_H */