/* Blinker
Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
a blinkenarea.org project */
#ifndef BLINKER_OPPRINTER_H
#define BLINKER_OPPRINTER_H
#include <set>
#include <string>
#include "Directory.h"
#include "File.h"
#include "Mgrs.h"
#include "Module.h"
#include "OpConn.h"
#include "OpConnIf.h"
#include "OpReqIf.h"
#include "TimeCallee.h"
namespace Blinker {
/// a operator connection printer
class OpPrinter: public Module, public OpReqIf, public TimeCallee
{
public:
/// type for set of open operator connections
typedef std::set<OpConn *> OpConns;
public:
/**
* @brief constructor
* @param[in] name module name
* @param[in] mgrs managers
* @param[in] dirBase base directory
*/
OpPrinter(const std::string &name, Mgrs &mgrs, const Directory &dirBase);
/// virtual destructor
virtual ~OpPrinter();
private:
/// copy constructor disabled
OpPrinter(const OpPrinter &that);
/// assignment operator disabled
const OpPrinter & operator=(const OpPrinter &that);
public:
/// check for update of configuration
virtual void updateConfig();